takt 0.49.0 → 0.50.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 (674) hide show
  1. package/README.md +2 -0
  2. package/builtins/en/config.yaml +6 -0
  3. package/builtins/en/facets/instructions/ai-antipattern-review.md +5 -0
  4. package/builtins/en/facets/instructions/findings-manager.md +6 -2
  5. package/builtins/en/facets/instructions/loop-monitor-fix-replan.md +21 -0
  6. package/builtins/en/facets/instructions/loop-monitor-replan.md +10 -0
  7. package/builtins/en/facets/instructions/plan-maintenance.md +10 -7
  8. package/builtins/en/facets/instructions/plan.md +17 -8
  9. package/builtins/en/facets/instructions/review-arch.md +5 -0
  10. package/builtins/en/facets/instructions/review-coding.md +15 -6
  11. package/builtins/en/facets/instructions/review-cqrs-es.md +9 -0
  12. package/builtins/en/facets/instructions/review-implementation-semantics.md +18 -0
  13. package/builtins/en/facets/instructions/review-merge-readiness.md +14 -0
  14. package/builtins/en/facets/instructions/supervise-maintenance.md +2 -2
  15. package/builtins/en/facets/instructions/supervise.md +8 -3
  16. package/builtins/en/facets/instructions/write-tests-first.md +23 -3
  17. package/builtins/en/facets/knowledge/architecture.md +25 -0
  18. package/builtins/en/facets/knowledge/cqrs-es.md +718 -235
  19. package/builtins/en/facets/knowledge/implementation-semantics.md +104 -0
  20. package/builtins/en/facets/knowledge/takt.md +10 -2
  21. package/builtins/en/facets/knowledge/unit-testing.md +14 -0
  22. package/builtins/en/facets/output-contracts/ai-antipattern-review.md +11 -1
  23. package/builtins/en/facets/output-contracts/architecture-review.md +6 -1
  24. package/builtins/en/facets/output-contracts/coding-review.md +11 -1
  25. package/builtins/en/facets/output-contracts/findings-manager.md +14 -0
  26. package/builtins/en/facets/output-contracts/implementation-semantics-review-finding-contract.md +28 -0
  27. package/builtins/en/facets/output-contracts/implementation-semantics-review.md +50 -0
  28. package/builtins/en/facets/output-contracts/{pure-review-finding-contract.md → merge-readiness-review-finding-contract.md} +14 -8
  29. package/builtins/en/facets/output-contracts/{pure-review.md → merge-readiness-review.md} +17 -11
  30. package/builtins/en/facets/output-contracts/supervisor-validation.md +6 -2
  31. package/builtins/en/facets/output-contracts/test-report.md +25 -0
  32. package/builtins/en/facets/personas/implementation-semantics-reviewer.md +27 -0
  33. package/builtins/en/facets/personas/merge-readiness-reviewer.md +28 -0
  34. package/builtins/en/facets/personas/supervisor.md +1 -1
  35. package/builtins/en/facets/policies/ai-antipattern.md +18 -0
  36. package/builtins/en/facets/policies/review.md +15 -0
  37. package/builtins/en/facets/policies/testing.md +3 -2
  38. package/builtins/en/workflow-categories.yaml +13 -1
  39. package/builtins/en/workflows/audit-architecture-backend.yaml +1 -0
  40. package/builtins/en/workflows/audit-architecture-dual.yaml +1 -0
  41. package/builtins/en/workflows/audit-architecture-frontend.yaml +1 -0
  42. package/builtins/en/workflows/audit-architecture.yaml +1 -0
  43. package/builtins/en/workflows/audit-e2e.yaml +1 -0
  44. package/builtins/en/workflows/audit-security.yaml +1 -0
  45. package/builtins/en/workflows/audit-unit.yaml +1 -0
  46. package/builtins/en/workflows/backend-cqrs-for-local-llm.yaml +288 -0
  47. package/builtins/en/workflows/backend-cqrs-mini.yaml +1 -0
  48. package/builtins/en/workflows/backend-cqrs.yaml +28 -84
  49. package/builtins/en/workflows/backend-for-local-llm.yaml +284 -0
  50. package/builtins/en/workflows/backend-maintenance.yaml +32 -89
  51. package/builtins/en/workflows/backend-mini.yaml +1 -0
  52. package/builtins/en/workflows/backend.yaml +25 -83
  53. package/builtins/en/workflows/{takt-default-with-fc.yaml → cli.yaml} +16 -4
  54. package/builtins/en/workflows/deep-research.yaml +1 -0
  55. package/builtins/en/workflows/default-high.yaml +3 -32
  56. package/builtins/en/workflows/default-peer-review.yaml +16 -52
  57. package/builtins/en/workflows/default.yaml +2 -1
  58. package/builtins/en/workflows/dual-cqrs-mini.yaml +1 -0
  59. package/builtins/en/workflows/dual-cqrs.yaml +28 -87
  60. package/builtins/en/workflows/dual-for-local-llm.yaml +312 -0
  61. package/builtins/en/workflows/dual-mini.yaml +1 -0
  62. package/builtins/en/workflows/dual.yaml +29 -57
  63. package/builtins/en/workflows/frontend-for-local-llm.yaml +289 -0
  64. package/builtins/en/workflows/frontend-maintenance.yaml +34 -91
  65. package/builtins/en/workflows/frontend-mini.yaml +1 -0
  66. package/builtins/en/workflows/frontend.yaml +27 -85
  67. package/builtins/en/workflows/merge-readiness-dual-final-gate.yaml +92 -0
  68. package/builtins/en/workflows/merge-readiness-final-gate.yaml +79 -0
  69. package/builtins/en/workflows/{peer-review-with-fc.yaml → peer-review-for-local-llm.yaml} +48 -37
  70. package/builtins/en/workflows/peer-review.yaml +25 -20
  71. package/builtins/en/workflows/research.yaml +1 -0
  72. package/builtins/en/workflows/review-backend-cqrs.yaml +63 -35
  73. package/builtins/en/workflows/review-backend.yaml +63 -35
  74. package/builtins/en/workflows/review-default.yaml +138 -107
  75. package/builtins/en/workflows/review-dual-cqrs.yaml +63 -35
  76. package/builtins/en/workflows/review-dual.yaml +63 -35
  77. package/builtins/en/workflows/review-fix-backend-cqrs.yaml +27 -87
  78. package/builtins/en/workflows/review-fix-backend.yaml +25 -86
  79. package/builtins/en/workflows/review-fix-default.yaml +17 -87
  80. package/builtins/en/workflows/review-fix-dual-cqrs.yaml +29 -90
  81. package/builtins/en/workflows/review-fix-dual.yaml +27 -89
  82. package/builtins/en/workflows/review-fix-frontend.yaml +25 -87
  83. package/builtins/en/workflows/review-fix-takt-default.yaml +67 -362
  84. package/builtins/en/workflows/review-frontend.yaml +63 -35
  85. package/builtins/en/workflows/review-takt-default.yaml +140 -109
  86. package/builtins/en/workflows/takt-default-for-local-llm.yaml +283 -0
  87. package/builtins/en/workflows/takt-default-refresh-all.yaml +20 -58
  88. package/builtins/en/workflows/takt-default-refresh-fast.yaml +19 -56
  89. package/builtins/en/workflows/takt-default.yaml +3 -25
  90. package/builtins/en/workflows/terraform.yaml +81 -44
  91. package/builtins/ja/config.yaml +6 -0
  92. package/builtins/ja/facets/instructions/ai-antipattern-review.md +5 -0
  93. package/builtins/ja/facets/instructions/findings-manager.md +6 -2
  94. package/builtins/ja/facets/instructions/implement-maintenance.md +4 -15
  95. package/builtins/ja/facets/instructions/implement.md +2 -14
  96. package/builtins/ja/facets/instructions/loop-monitor-fix-replan.md +21 -0
  97. package/builtins/ja/facets/instructions/loop-monitor-replan.md +10 -0
  98. package/builtins/ja/facets/instructions/plan-maintenance.md +10 -7
  99. package/builtins/ja/facets/instructions/plan.md +9 -6
  100. package/builtins/ja/facets/instructions/review-arch.md +5 -0
  101. package/builtins/ja/facets/instructions/review-coding.md +15 -6
  102. package/builtins/ja/facets/instructions/review-cqrs-es.md +9 -0
  103. package/builtins/ja/facets/instructions/review-implementation-semantics.md +17 -0
  104. package/builtins/ja/facets/instructions/review-merge-readiness.md +14 -0
  105. package/builtins/ja/facets/instructions/supervise-maintenance.md +2 -2
  106. package/builtins/ja/facets/instructions/supervise.md +8 -3
  107. package/builtins/ja/facets/instructions/write-tests-first.md +23 -3
  108. package/builtins/ja/facets/knowledge/architecture.md +25 -0
  109. package/builtins/ja/facets/knowledge/cqrs-es.md +211 -16
  110. package/builtins/ja/facets/knowledge/implementation-semantics.md +104 -0
  111. package/builtins/ja/facets/knowledge/takt.md +10 -2
  112. package/builtins/ja/facets/knowledge/unit-testing.md +14 -0
  113. package/builtins/ja/facets/output-contracts/ai-antipattern-review.md +11 -1
  114. package/builtins/ja/facets/output-contracts/architecture-review.md +6 -1
  115. package/builtins/ja/facets/output-contracts/coding-review.md +11 -1
  116. package/builtins/ja/facets/output-contracts/findings-manager.md +14 -0
  117. package/builtins/ja/facets/output-contracts/implementation-semantics-review-finding-contract.md +24 -0
  118. package/builtins/ja/facets/output-contracts/implementation-semantics-review.md +50 -0
  119. package/builtins/ja/facets/output-contracts/{pure-review-finding-contract.md → merge-readiness-review-finding-contract.md} +14 -8
  120. package/builtins/ja/facets/output-contracts/{pure-review.md → merge-readiness-review.md} +17 -11
  121. package/builtins/ja/facets/output-contracts/supervisor-validation.md +6 -2
  122. package/builtins/ja/facets/output-contracts/test-report.md +25 -0
  123. package/builtins/ja/facets/partials/instructions/implement-common.md +13 -0
  124. package/builtins/ja/facets/personas/implementation-semantics-reviewer.md +27 -0
  125. package/builtins/ja/facets/personas/merge-readiness-reviewer.md +28 -0
  126. package/builtins/ja/facets/personas/supervisor.md +1 -1
  127. package/builtins/ja/facets/policies/ai-antipattern.md +18 -0
  128. package/builtins/ja/facets/policies/coding.md +1 -0
  129. package/builtins/ja/facets/policies/review.md +15 -0
  130. package/builtins/ja/facets/policies/testing.md +8 -4
  131. package/builtins/ja/workflow-categories.yaml +13 -1
  132. package/builtins/ja/workflows/audit-architecture-backend.yaml +1 -0
  133. package/builtins/ja/workflows/audit-architecture-dual.yaml +1 -0
  134. package/builtins/ja/workflows/audit-architecture-frontend.yaml +1 -0
  135. package/builtins/ja/workflows/audit-architecture.yaml +1 -0
  136. package/builtins/ja/workflows/audit-e2e.yaml +1 -0
  137. package/builtins/ja/workflows/audit-security.yaml +1 -0
  138. package/builtins/ja/workflows/audit-unit.yaml +1 -0
  139. package/builtins/ja/workflows/backend-cqrs-for-local-llm.yaml +287 -0
  140. package/builtins/ja/workflows/backend-cqrs-mini.yaml +1 -0
  141. package/builtins/ja/workflows/backend-cqrs.yaml +28 -84
  142. package/builtins/ja/workflows/backend-for-local-llm.yaml +283 -0
  143. package/builtins/ja/workflows/backend-maintenance.yaml +32 -89
  144. package/builtins/ja/workflows/backend-mini.yaml +1 -0
  145. package/builtins/ja/workflows/backend.yaml +25 -83
  146. package/builtins/ja/workflows/{takt-default-with-fc.yaml → cli.yaml} +16 -4
  147. package/builtins/ja/workflows/deep-research.yaml +1 -0
  148. package/builtins/ja/workflows/default-high.yaml +3 -32
  149. package/builtins/ja/workflows/default-peer-review.yaml +16 -52
  150. package/builtins/ja/workflows/default.yaml +2 -1
  151. package/builtins/ja/workflows/dual-cqrs-mini.yaml +1 -0
  152. package/builtins/ja/workflows/dual-cqrs.yaml +28 -87
  153. package/builtins/ja/workflows/dual-for-local-llm.yaml +311 -0
  154. package/builtins/ja/workflows/dual-mini.yaml +1 -0
  155. package/builtins/ja/workflows/dual.yaml +29 -57
  156. package/builtins/ja/workflows/frontend-for-local-llm.yaml +288 -0
  157. package/builtins/ja/workflows/frontend-maintenance.yaml +34 -91
  158. package/builtins/ja/workflows/frontend-mini.yaml +1 -0
  159. package/builtins/ja/workflows/frontend.yaml +27 -85
  160. package/builtins/ja/workflows/merge-readiness-dual-final-gate.yaml +92 -0
  161. package/builtins/ja/workflows/merge-readiness-final-gate.yaml +79 -0
  162. package/builtins/ja/workflows/{peer-review-with-fc.yaml → peer-review-for-local-llm.yaml} +48 -37
  163. package/builtins/ja/workflows/peer-review.yaml +25 -20
  164. package/builtins/ja/workflows/research.yaml +1 -0
  165. package/builtins/ja/workflows/review-backend-cqrs.yaml +63 -35
  166. package/builtins/ja/workflows/review-backend.yaml +63 -35
  167. package/builtins/ja/workflows/review-default.yaml +111 -79
  168. package/builtins/ja/workflows/review-dual-cqrs.yaml +63 -35
  169. package/builtins/ja/workflows/review-dual.yaml +63 -35
  170. package/builtins/ja/workflows/review-fix-backend-cqrs.yaml +27 -87
  171. package/builtins/ja/workflows/review-fix-backend.yaml +25 -86
  172. package/builtins/ja/workflows/review-fix-default.yaml +17 -87
  173. package/builtins/ja/workflows/review-fix-dual-cqrs.yaml +29 -90
  174. package/builtins/ja/workflows/review-fix-dual.yaml +27 -89
  175. package/builtins/ja/workflows/review-fix-frontend.yaml +25 -87
  176. package/builtins/ja/workflows/review-fix-takt-default.yaml +67 -362
  177. package/builtins/ja/workflows/review-frontend.yaml +63 -35
  178. package/builtins/ja/workflows/review-takt-default.yaml +112 -80
  179. package/builtins/ja/workflows/takt-default-for-local-llm.yaml +282 -0
  180. package/builtins/ja/workflows/takt-default-refresh-all.yaml +20 -58
  181. package/builtins/ja/workflows/takt-default-refresh-fast.yaml +19 -56
  182. package/builtins/ja/workflows/takt-default.yaml +3 -25
  183. package/builtins/ja/workflows/terraform.yaml +81 -44
  184. package/dist/agents/decompose-task-usecase.d.ts +1 -0
  185. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  186. package/dist/agents/decompose-task-usecase.js +2 -0
  187. package/dist/agents/decompose-task-usecase.js.map +1 -1
  188. package/dist/agents/judge-utils.d.ts.map +1 -1
  189. package/dist/agents/judge-utils.js +4 -3
  190. package/dist/agents/judge-utils.js.map +1 -1
  191. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  192. package/dist/agents/structured-caller/prompt-based-structured-caller.js +2 -0
  193. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  194. package/dist/app/acp/agent.d.ts +28 -0
  195. package/dist/app/acp/agent.d.ts.map +1 -0
  196. package/dist/app/acp/agent.js +279 -0
  197. package/dist/app/acp/agent.js.map +1 -0
  198. package/dist/app/acp/confirmationBridge.d.ts +5 -0
  199. package/dist/app/acp/confirmationBridge.d.ts.map +1 -0
  200. package/dist/app/acp/confirmationBridge.js +194 -0
  201. package/dist/app/acp/confirmationBridge.js.map +1 -0
  202. package/dist/app/acp/conversationFactory.d.ts +4 -0
  203. package/dist/app/acp/conversationFactory.d.ts.map +1 -0
  204. package/dist/app/acp/conversationFactory.js +33 -0
  205. package/dist/app/acp/conversationFactory.js.map +1 -0
  206. package/dist/app/acp/enqueue.d.ts +33 -0
  207. package/dist/app/acp/enqueue.d.ts.map +1 -0
  208. package/dist/app/acp/enqueue.js +45 -0
  209. package/dist/app/acp/enqueue.js.map +1 -0
  210. package/dist/app/acp/index.d.ts +7 -0
  211. package/dist/app/acp/index.d.ts.map +1 -0
  212. package/dist/app/acp/index.js +125 -0
  213. package/dist/app/acp/index.js.map +1 -0
  214. package/dist/app/acp/intent.d.ts +10 -0
  215. package/dist/app/acp/intent.d.ts.map +1 -0
  216. package/dist/app/acp/intent.js +210 -0
  217. package/dist/app/acp/intent.js.map +1 -0
  218. package/dist/app/acp/mcpServers.d.ts +4 -0
  219. package/dist/app/acp/mcpServers.d.ts.map +1 -0
  220. package/dist/app/acp/mcpServers.js +51 -0
  221. package/dist/app/acp/mcpServers.js.map +1 -0
  222. package/dist/app/acp/promptContent.d.ts +3 -0
  223. package/dist/app/acp/promptContent.d.ts.map +1 -0
  224. package/dist/app/acp/promptContent.js +23 -0
  225. package/dist/app/acp/promptContent.js.map +1 -0
  226. package/dist/app/acp/sessionStore.d.ts +19 -0
  227. package/dist/app/acp/sessionStore.d.ts.map +1 -0
  228. package/dist/app/acp/sessionStore.js +50 -0
  229. package/dist/app/acp/sessionStore.js.map +1 -0
  230. package/dist/app/acp/sessionUpdates.d.ts +8 -0
  231. package/dist/app/acp/sessionUpdates.d.ts.map +1 -0
  232. package/dist/app/acp/sessionUpdates.js +108 -0
  233. package/dist/app/acp/sessionUpdates.js.map +1 -0
  234. package/dist/app/acp/taskContext.d.ts +17 -0
  235. package/dist/app/acp/taskContext.d.ts.map +1 -0
  236. package/dist/app/acp/taskContext.js +81 -0
  237. package/dist/app/acp/taskContext.js.map +1 -0
  238. package/dist/app/acp/types.d.ts +33 -0
  239. package/dist/app/acp/types.d.ts.map +1 -0
  240. package/dist/app/acp/types.js +2 -0
  241. package/dist/app/acp/types.js.map +1 -0
  242. package/dist/app/cli/program.d.ts.map +1 -1
  243. package/dist/app/cli/program.js +2 -3
  244. package/dist/app/cli/program.js.map +1 -1
  245. package/dist/app/mcp/index.d.ts +3 -0
  246. package/dist/app/mcp/index.d.ts.map +1 -0
  247. package/dist/app/mcp/index.js +16 -0
  248. package/dist/app/mcp/index.js.map +1 -0
  249. package/dist/app/mcp/server.d.ts +2 -0
  250. package/dist/app/mcp/server.d.ts.map +1 -0
  251. package/dist/app/mcp/server.js +2 -0
  252. package/dist/app/mcp/server.js.map +1 -0
  253. package/dist/core/config/provider-resolution.d.ts +1 -0
  254. package/dist/core/config/provider-resolution.d.ts.map +1 -1
  255. package/dist/core/config/provider-resolution.js +19 -0
  256. package/dist/core/config/provider-resolution.js.map +1 -1
  257. package/dist/core/models/finding-schemas.d.ts +129 -10
  258. package/dist/core/models/finding-schemas.d.ts.map +1 -1
  259. package/dist/core/models/finding-schemas.js +79 -9
  260. package/dist/core/models/finding-schemas.js.map +1 -1
  261. package/dist/core/models/finding-types.d.ts +39 -2
  262. package/dist/core/models/finding-types.d.ts.map +1 -1
  263. package/dist/core/models/finding-types.js +3 -2
  264. package/dist/core/models/finding-types.js.map +1 -1
  265. package/dist/core/models/workflow-condition-expression.d.ts +17 -0
  266. package/dist/core/models/workflow-condition-expression.d.ts.map +1 -1
  267. package/dist/core/models/workflow-condition-expression.js +85 -2
  268. package/dist/core/models/workflow-condition-expression.js.map +1 -1
  269. package/dist/core/models/workflow-schemas.d.ts +18 -6
  270. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  271. package/dist/core/models/workflow-schemas.js +1 -1
  272. package/dist/core/models/workflow-schemas.js.map +1 -1
  273. package/dist/core/models/workflow-types.d.ts +6 -0
  274. package/dist/core/models/workflow-types.d.ts.map +1 -1
  275. package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
  276. package/dist/core/runtime/runtime-environment.js +19 -0
  277. package/dist/core/runtime/runtime-environment.js.map +1 -1
  278. package/dist/core/workflow/engine/OptionsBuilder.d.ts +14 -5
  279. package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
  280. package/dist/core/workflow/engine/OptionsBuilder.js +70 -5
  281. package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
  282. package/dist/core/workflow/engine/ParallelRunner.d.ts +2 -0
  283. package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
  284. package/dist/core/workflow/engine/ParallelRunner.js +131 -23
  285. package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
  286. package/dist/core/workflow/engine/StepExecutor.d.ts +10 -0
  287. package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
  288. package/dist/core/workflow/engine/StepExecutor.js +86 -30
  289. package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
  290. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  291. package/dist/core/workflow/engine/TeamLeaderRunner.js +3 -0
  292. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  293. package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
  294. package/dist/core/workflow/engine/WorkflowEngine.js +8 -3
  295. package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
  296. package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
  297. package/dist/core/workflow/engine/WorkflowEngineSetup.js +3 -1
  298. package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
  299. package/dist/core/workflow/engine/WorkflowValidator.d.ts.map +1 -1
  300. package/dist/core/workflow/engine/WorkflowValidator.js +9 -6
  301. package/dist/core/workflow/engine/WorkflowValidator.js.map +1 -1
  302. package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -0
  303. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  304. package/dist/core/workflow/engine/engine-provider-options.js +12 -0
  305. package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
  306. package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
  307. package/dist/core/workflow/engine/team-leader-part-runner.js +3 -1
  308. package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
  309. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts +0 -1
  310. package/dist/core/workflow/evaluation/RuleEvaluator.d.ts.map +1 -1
  311. package/dist/core/workflow/evaluation/RuleEvaluator.js +22 -34
  312. package/dist/core/workflow/evaluation/RuleEvaluator.js.map +1 -1
  313. package/dist/core/workflow/evaluation/rule-utils.d.ts +33 -1
  314. package/dist/core/workflow/evaluation/rule-utils.d.ts.map +1 -1
  315. package/dist/core/workflow/evaluation/rule-utils.js +77 -5
  316. package/dist/core/workflow/evaluation/rule-utils.js.map +1 -1
  317. package/dist/core/workflow/evaluation/when-evaluator.d.ts +1 -0
  318. package/dist/core/workflow/evaluation/when-evaluator.d.ts.map +1 -1
  319. package/dist/core/workflow/evaluation/when-evaluator.js +18 -40
  320. package/dist/core/workflow/evaluation/when-evaluator.js.map +1 -1
  321. package/dist/core/workflow/findings/context.d.ts +4 -0
  322. package/dist/core/workflow/findings/context.d.ts.map +1 -1
  323. package/dist/core/workflow/findings/context.js +27 -0
  324. package/dist/core/workflow/findings/context.js.map +1 -1
  325. package/dist/core/workflow/findings/manager-output-validation.d.ts +2 -0
  326. package/dist/core/workflow/findings/manager-output-validation.d.ts.map +1 -1
  327. package/dist/core/workflow/findings/manager-output-validation.js +145 -8
  328. package/dist/core/workflow/findings/manager-output-validation.js.map +1 -1
  329. package/dist/core/workflow/findings/manager-runner.d.ts +13 -3
  330. package/dist/core/workflow/findings/manager-runner.d.ts.map +1 -1
  331. package/dist/core/workflow/findings/manager-runner.js +19 -2
  332. package/dist/core/workflow/findings/manager-runner.js.map +1 -1
  333. package/dist/core/workflow/findings/reconciler.d.ts +1 -0
  334. package/dist/core/workflow/findings/reconciler.d.ts.map +1 -1
  335. package/dist/core/workflow/findings/reconciler.js +90 -4
  336. package/dist/core/workflow/findings/reconciler.js.map +1 -1
  337. package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
  338. package/dist/core/workflow/instruction/InstructionBuilder.js +17 -1
  339. package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
  340. package/dist/core/workflow/instruction/instruction-context.d.ts +4 -0
  341. package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
  342. package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
  343. package/dist/core/workflow/instruction/status-rules.d.ts.map +1 -1
  344. package/dist/core/workflow/instruction/status-rules.js +7 -2
  345. package/dist/core/workflow/instruction/status-rules.js.map +1 -1
  346. package/dist/core/workflow/phase-runner.d.ts +17 -10
  347. package/dist/core/workflow/phase-runner.d.ts.map +1 -1
  348. package/dist/core/workflow/phase-runner.js +1 -1
  349. package/dist/core/workflow/phase-runner.js.map +1 -1
  350. package/dist/core/workflow/provider-model-requirements.d.ts +6 -0
  351. package/dist/core/workflow/provider-model-requirements.d.ts.map +1 -0
  352. package/dist/core/workflow/provider-model-requirements.js +15 -0
  353. package/dist/core/workflow/provider-model-requirements.js.map +1 -0
  354. package/dist/core/workflow/report-phase-runner.d.ts +5 -2
  355. package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
  356. package/dist/core/workflow/report-phase-runner.js +135 -43
  357. package/dist/core/workflow/report-phase-runner.js.map +1 -1
  358. package/dist/core/workflow/status-judgment-phase.d.ts +2 -2
  359. package/dist/core/workflow/status-judgment-phase.d.ts.map +1 -1
  360. package/dist/core/workflow/status-judgment-phase.js +1 -7
  361. package/dist/core/workflow/status-judgment-phase.js.map +1 -1
  362. package/dist/core/workflow/system/system-step-effect-runner.js +2 -2
  363. package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
  364. package/dist/core/workflow/system/system-step-services.d.ts +101 -0
  365. package/dist/core/workflow/system/system-step-services.d.ts.map +1 -1
  366. package/dist/core/workflow/types.d.ts +7 -3
  367. package/dist/core/workflow/types.d.ts.map +1 -1
  368. package/dist/features/analytics/events.d.ts +2 -1
  369. package/dist/features/analytics/events.d.ts.map +1 -1
  370. package/dist/features/exec/assistantSession.js +1 -1
  371. package/dist/features/exec/assistantSession.js.map +1 -1
  372. package/dist/features/exec/configOps.d.ts.map +1 -1
  373. package/dist/features/exec/configOps.js +4 -4
  374. package/dist/features/exec/configOps.js.map +1 -1
  375. package/dist/features/exec/configValidation.d.ts +1 -1
  376. package/dist/features/exec/configValidation.d.ts.map +1 -1
  377. package/dist/features/exec/configValidation.js +9 -13
  378. package/dist/features/exec/configValidation.js.map +1 -1
  379. package/dist/features/exec/setupMenu.js +2 -2
  380. package/dist/features/exec/setupMenu.js.map +1 -1
  381. package/dist/features/exec/workflowTemplate.d.ts.map +1 -1
  382. package/dist/features/exec/workflowTemplate.js +4 -4
  383. package/dist/features/exec/workflowTemplate.js.map +1 -1
  384. package/dist/features/interactive/aiCaller.d.ts +2 -0
  385. package/dist/features/interactive/aiCaller.d.ts.map +1 -1
  386. package/dist/features/interactive/aiCaller.js +31 -10
  387. package/dist/features/interactive/aiCaller.js.map +1 -1
  388. package/dist/features/interactive/conversationSession.d.ts +44 -0
  389. package/dist/features/interactive/conversationSession.d.ts.map +1 -0
  390. package/dist/features/interactive/conversationSession.js +133 -0
  391. package/dist/features/interactive/conversationSession.js.map +1 -0
  392. package/dist/features/interactive/index.d.ts +1 -0
  393. package/dist/features/interactive/index.d.ts.map +1 -1
  394. package/dist/features/interactive/index.js +1 -0
  395. package/dist/features/interactive/index.js.map +1 -1
  396. package/dist/features/interactive/interactive.d.ts +5 -4
  397. package/dist/features/interactive/interactive.d.ts.map +1 -1
  398. package/dist/features/interactive/interactive.js +10 -4
  399. package/dist/features/interactive/interactive.js.map +1 -1
  400. package/dist/features/interactive/interactiveApplication.d.ts +5 -0
  401. package/dist/features/interactive/interactiveApplication.d.ts.map +1 -0
  402. package/dist/features/interactive/interactiveApplication.js +10 -0
  403. package/dist/features/interactive/interactiveApplication.js.map +1 -0
  404. package/dist/features/mcp/operations.d.ts +25 -0
  405. package/dist/features/mcp/operations.d.ts.map +1 -0
  406. package/dist/features/mcp/operations.js +150 -0
  407. package/dist/features/mcp/operations.js.map +1 -0
  408. package/dist/features/mcp/schemas.d.ts +50 -0
  409. package/dist/features/mcp/schemas.d.ts.map +1 -0
  410. package/dist/features/mcp/schemas.js +59 -0
  411. package/dist/features/mcp/schemas.js.map +1 -0
  412. package/dist/features/mcp/server.d.ts +7 -0
  413. package/dist/features/mcp/server.d.ts.map +1 -0
  414. package/dist/features/mcp/server.js +36 -0
  415. package/dist/features/mcp/server.js.map +1 -0
  416. package/dist/features/tasks/add/index.d.ts +8 -20
  417. package/dist/features/tasks/add/index.d.ts.map +1 -1
  418. package/dist/features/tasks/add/index.js +42 -61
  419. package/dist/features/tasks/add/index.js.map +1 -1
  420. package/dist/features/tasks/attachments.d.ts +2 -5
  421. package/dist/features/tasks/attachments.d.ts.map +1 -1
  422. package/dist/features/tasks/attachments.js +11 -35
  423. package/dist/features/tasks/attachments.js.map +1 -1
  424. package/dist/features/tasks/execute/outputFns.d.ts +1 -1
  425. package/dist/features/tasks/execute/outputFns.d.ts.map +1 -1
  426. package/dist/features/tasks/execute/outputFns.js +17 -1
  427. package/dist/features/tasks/execute/outputFns.js.map +1 -1
  428. package/dist/features/tasks/execute/postExecution.d.ts +4 -1
  429. package/dist/features/tasks/execute/postExecution.d.ts.map +1 -1
  430. package/dist/features/tasks/execute/postExecution.js +33 -14
  431. package/dist/features/tasks/execute/postExecution.js.map +1 -1
  432. package/dist/features/tasks/execute/resolveTask.d.ts +9 -3
  433. package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
  434. package/dist/features/tasks/execute/resolveTask.js +45 -13
  435. package/dist/features/tasks/execute/resolveTask.js.map +1 -1
  436. package/dist/features/tasks/execute/runTaskExecution.d.ts +7 -1
  437. package/dist/features/tasks/execute/runTaskExecution.d.ts.map +1 -1
  438. package/dist/features/tasks/execute/runTaskExecution.js +11 -8
  439. package/dist/features/tasks/execute/runTaskExecution.js.map +1 -1
  440. package/dist/features/tasks/execute/taskExecution.d.ts +12 -3
  441. package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
  442. package/dist/features/tasks/execute/taskExecution.js +63 -16
  443. package/dist/features/tasks/execute/taskExecution.js.map +1 -1
  444. package/dist/features/tasks/execute/taskResultHandler.d.ts +2 -2
  445. package/dist/features/tasks/execute/taskResultHandler.d.ts.map +1 -1
  446. package/dist/features/tasks/execute/taskResultHandler.js +8 -4
  447. package/dist/features/tasks/execute/taskResultHandler.js.map +1 -1
  448. package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
  449. package/dist/features/tasks/execute/taskWorkflowExecution.js +60 -9
  450. package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
  451. package/dist/features/tasks/execute/traceTaskMetadata.js +3 -6
  452. package/dist/features/tasks/execute/traceTaskMetadata.js.map +1 -1
  453. package/dist/features/tasks/execute/types.d.ts +95 -2
  454. package/dist/features/tasks/execute/types.d.ts.map +1 -1
  455. package/dist/features/tasks/execute/workflowExecution.d.ts +3 -1
  456. package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
  457. package/dist/features/tasks/execute/workflowExecution.js +41 -3
  458. package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
  459. package/dist/features/tasks/execute/workflowExecutionApi.d.ts +6 -0
  460. package/dist/features/tasks/execute/workflowExecutionApi.d.ts.map +1 -0
  461. package/dist/features/tasks/execute/workflowExecutionApi.js +25 -0
  462. package/dist/features/tasks/execute/workflowExecutionApi.js.map +1 -0
  463. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts +2 -1
  464. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  465. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +18 -14
  466. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  467. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts +14 -1
  468. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  469. package/dist/features/tasks/execute/workflowExecutionEvents.js +241 -2
  470. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  471. package/dist/features/tasks/list/requeueHelpers.d.ts +1 -0
  472. package/dist/features/tasks/list/requeueHelpers.d.ts.map +1 -1
  473. package/dist/features/tasks/list/requeueHelpers.js +3 -0
  474. package/dist/features/tasks/list/requeueHelpers.js.map +1 -1
  475. package/dist/features/tasks/list/taskInstructionActions.d.ts.map +1 -1
  476. package/dist/features/tasks/list/taskInstructionActions.js +2 -2
  477. package/dist/features/tasks/list/taskInstructionActions.js.map +1 -1
  478. package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
  479. package/dist/features/tasks/list/taskRetryActions.js +1 -4
  480. package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
  481. package/dist/features/tasks/taskContextValidation.d.ts +10 -0
  482. package/dist/features/tasks/taskContextValidation.d.ts.map +1 -0
  483. package/dist/features/tasks/taskContextValidation.js +73 -0
  484. package/dist/features/tasks/taskContextValidation.js.map +1 -0
  485. package/dist/infra/codex/client.d.ts.map +1 -1
  486. package/dist/infra/codex/client.js +5 -0
  487. package/dist/infra/codex/client.js.map +1 -1
  488. package/dist/infra/config/configNormalizers.js +4 -4
  489. package/dist/infra/config/configNormalizers.js.map +1 -1
  490. package/dist/infra/config/global/globalConfigCore.js +2 -2
  491. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  492. package/dist/infra/config/loaders/resource-resolver.d.ts.map +1 -1
  493. package/dist/infra/config/loaders/resource-resolver.js +22 -7
  494. package/dist/infra/config/loaders/resource-resolver.js.map +1 -1
  495. package/dist/infra/config/loaders/workflowCallContracts.d.ts.map +1 -1
  496. package/dist/infra/config/loaders/workflowCallContracts.js +5 -0
  497. package/dist/infra/config/loaders/workflowCallContracts.js.map +1 -1
  498. package/dist/infra/config/loaders/workflowCallableArgResolver.d.ts.map +1 -1
  499. package/dist/infra/config/loaders/workflowCallableArgResolver.js +27 -0
  500. package/dist/infra/config/loaders/workflowCallableArgResolver.js.map +1 -1
  501. package/dist/infra/config/loaders/workflowCallableRuleValidation.d.ts.map +1 -1
  502. package/dist/infra/config/loaders/workflowCallableRuleValidation.js +5 -0
  503. package/dist/infra/config/loaders/workflowCallableRuleValidation.js.map +1 -1
  504. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
  505. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +9 -1
  506. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
  507. package/dist/infra/config/loaders/workflowPackageScope.d.ts +1 -0
  508. package/dist/infra/config/loaders/workflowPackageScope.d.ts.map +1 -1
  509. package/dist/infra/config/loaders/workflowPackageScope.js +20 -2
  510. package/dist/infra/config/loaders/workflowPackageScope.js.map +1 -1
  511. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  512. package/dist/infra/config/loaders/workflowParser.js +11 -6
  513. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  514. package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts +10 -0
  515. package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts.map +1 -1
  516. package/dist/infra/config/loaders/workflowRuleNormalizer.js +70 -1
  517. package/dist/infra/config/loaders/workflowRuleNormalizer.js.map +1 -1
  518. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  519. package/dist/infra/config/loaders/workflowStepNormalizer.js +15 -1
  520. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  521. package/dist/infra/config/project/sessionStore.d.ts +2 -2
  522. package/dist/infra/config/project/sessionStore.d.ts.map +1 -1
  523. package/dist/infra/config/project/sessionStore.js +12 -4
  524. package/dist/infra/config/project/sessionStore.js.map +1 -1
  525. package/dist/infra/config/providerModelRequirements.d.ts +2 -0
  526. package/dist/infra/config/providerModelRequirements.d.ts.map +1 -0
  527. package/dist/infra/config/providerModelRequirements.js +2 -0
  528. package/dist/infra/config/providerModelRequirements.js.map +1 -0
  529. package/dist/infra/git/format.d.ts +1 -0
  530. package/dist/infra/git/format.d.ts.map +1 -1
  531. package/dist/infra/git/format.js +21 -0
  532. package/dist/infra/git/format.js.map +1 -1
  533. package/dist/infra/git/index.d.ts +1 -1
  534. package/dist/infra/git/index.d.ts.map +1 -1
  535. package/dist/infra/git/types.d.ts +16 -4
  536. package/dist/infra/git/types.d.ts.map +1 -1
  537. package/dist/infra/github/GitHubProvider.d.ts +2 -1
  538. package/dist/infra/github/GitHubProvider.d.ts.map +1 -1
  539. package/dist/infra/github/GitHubProvider.js +4 -1
  540. package/dist/infra/github/GitHubProvider.js.map +1 -1
  541. package/dist/infra/github/issue.d.ts +2 -1
  542. package/dist/infra/github/issue.d.ts.map +1 -1
  543. package/dist/infra/github/issue.js +23 -2
  544. package/dist/infra/github/issue.js.map +1 -1
  545. package/dist/infra/gitlab/GitLabProvider.d.ts +2 -1
  546. package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -1
  547. package/dist/infra/gitlab/GitLabProvider.js +4 -1
  548. package/dist/infra/gitlab/GitLabProvider.js.map +1 -1
  549. package/dist/infra/gitlab/issue.d.ts +2 -1
  550. package/dist/infra/gitlab/issue.d.ts.map +1 -1
  551. package/dist/infra/gitlab/issue.js +30 -2
  552. package/dist/infra/gitlab/issue.js.map +1 -1
  553. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +4 -0
  554. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
  555. package/dist/infra/opencode/OpenCodeStreamHandler.js.map +1 -1
  556. package/dist/infra/opencode/allowedTools.d.ts.map +1 -1
  557. package/dist/infra/opencode/allowedTools.js +0 -1
  558. package/dist/infra/opencode/allowedTools.js.map +1 -1
  559. package/dist/infra/opencode/client.d.ts +2 -0
  560. package/dist/infra/opencode/client.d.ts.map +1 -1
  561. package/dist/infra/opencode/client.js +346 -169
  562. package/dist/infra/opencode/client.js.map +1 -1
  563. package/dist/infra/opencode/types.d.ts +34 -0
  564. package/dist/infra/opencode/types.d.ts.map +1 -1
  565. package/dist/infra/opencode/types.js +88 -1
  566. package/dist/infra/opencode/types.js.map +1 -1
  567. package/dist/infra/opencode/unavailable-tool-loop.d.ts +13 -0
  568. package/dist/infra/opencode/unavailable-tool-loop.d.ts.map +1 -1
  569. package/dist/infra/opencode/unavailable-tool-loop.js +46 -0
  570. package/dist/infra/opencode/unavailable-tool-loop.js.map +1 -1
  571. package/dist/infra/providers/claude-headless.d.ts.map +1 -1
  572. package/dist/infra/providers/claude-headless.js +0 -2
  573. package/dist/infra/providers/claude-headless.js.map +1 -1
  574. package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
  575. package/dist/infra/providers/claude-terminal.js +0 -2
  576. package/dist/infra/providers/claude-terminal.js.map +1 -1
  577. package/dist/infra/providers/claude.d.ts.map +1 -1
  578. package/dist/infra/providers/claude.js +0 -2
  579. package/dist/infra/providers/claude.js.map +1 -1
  580. package/dist/infra/providers/opencode.d.ts +1 -1
  581. package/dist/infra/providers/opencode.d.ts.map +1 -1
  582. package/dist/infra/providers/opencode.js +2 -1
  583. package/dist/infra/providers/opencode.js.map +1 -1
  584. package/dist/infra/task/clone-exec.d.ts.map +1 -1
  585. package/dist/infra/task/clone-exec.js +31 -0
  586. package/dist/infra/task/clone-exec.js.map +1 -1
  587. package/dist/infra/task/enqueueService.d.ts +115 -0
  588. package/dist/infra/task/enqueueService.d.ts.map +1 -0
  589. package/dist/infra/task/enqueueService.js +191 -0
  590. package/dist/infra/task/enqueueService.js.map +1 -0
  591. package/dist/infra/task/enqueuedTaskFile.d.ts +6 -0
  592. package/dist/infra/task/enqueuedTaskFile.d.ts.map +1 -0
  593. package/dist/infra/task/enqueuedTaskFile.js +55 -0
  594. package/dist/infra/task/enqueuedTaskFile.js.map +1 -0
  595. package/dist/infra/task/issueTask.d.ts +20 -0
  596. package/dist/infra/task/issueTask.d.ts.map +1 -0
  597. package/dist/{features/tasks/add → infra/task}/issueTask.js +61 -43
  598. package/dist/infra/task/issueTask.js.map +1 -0
  599. package/dist/infra/task/listSerializer.d.ts +1 -0
  600. package/dist/infra/task/listSerializer.d.ts.map +1 -1
  601. package/dist/infra/task/listSerializer.js +1 -0
  602. package/dist/infra/task/listSerializer.js.map +1 -1
  603. package/dist/infra/task/mapper.d.ts.map +1 -1
  604. package/dist/infra/task/mapper.js +1 -0
  605. package/dist/infra/task/mapper.js.map +1 -1
  606. package/dist/infra/task/taskExecutionSchemas.d.ts +3 -0
  607. package/dist/infra/task/taskExecutionSchemas.d.ts.map +1 -1
  608. package/dist/infra/task/taskExecutionSchemas.js +4 -2
  609. package/dist/infra/task/taskExecutionSchemas.js.map +1 -1
  610. package/dist/infra/task/taskRecordSchemas.d.ts +2 -0
  611. package/dist/infra/task/taskRecordSchemas.d.ts.map +1 -1
  612. package/dist/infra/workflow/system/DefaultSystemStepServices.d.ts.map +1 -1
  613. package/dist/infra/workflow/system/DefaultSystemStepServices.js +7 -7
  614. package/dist/infra/workflow/system/DefaultSystemStepServices.js.map +1 -1
  615. package/dist/infra/workflow/system/system-enqueue-effect.d.ts.map +1 -1
  616. package/dist/infra/workflow/system/system-enqueue-effect.js +78 -20
  617. package/dist/infra/workflow/system/system-enqueue-effect.js.map +1 -1
  618. package/dist/infra/workflow/system/system-git-context.d.ts +6 -6
  619. package/dist/infra/workflow/system/system-git-context.d.ts.map +1 -1
  620. package/dist/infra/workflow/system/system-git-context.js +13 -13
  621. package/dist/infra/workflow/system/system-git-context.js.map +1 -1
  622. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts +3 -3
  623. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts.map +1 -1
  624. package/dist/infra/workflow/system/system-issue-input-resolver.js +8 -8
  625. package/dist/infra/workflow/system/system-issue-input-resolver.js.map +1 -1
  626. package/dist/infra/workflow/system/system-pr-effects.d.ts.map +1 -1
  627. package/dist/infra/workflow/system/system-pr-effects.js +6 -3
  628. package/dist/infra/workflow/system/system-pr-effects.js.map +1 -1
  629. package/dist/infra/workflow/system/system-pr-input-resolver.d.ts +3 -3
  630. package/dist/infra/workflow/system/system-pr-input-resolver.d.ts.map +1 -1
  631. package/dist/infra/workflow/system/system-pr-input-resolver.js +8 -8
  632. package/dist/infra/workflow/system/system-pr-input-resolver.js.map +1 -1
  633. package/dist/infra/workflow/system/system-sync-effects.js +2 -2
  634. package/dist/infra/workflow/system/system-sync-effects.js.map +1 -1
  635. package/dist/shared/package-info.d.ts +2 -0
  636. package/dist/shared/package-info.d.ts.map +1 -0
  637. package/dist/shared/package-info.js +5 -0
  638. package/dist/shared/package-info.js.map +1 -0
  639. package/dist/shared/prompts/en/finding_manager_instruction.md +9 -2
  640. package/dist/shared/prompts/en/opencode_review_agent_prompt.md +20 -23
  641. package/dist/shared/prompts/ja/finding_manager_instruction.md +9 -2
  642. package/dist/shared/prompts/ja/opencode_review_agent_prompt.md +20 -23
  643. package/dist/shared/utils/entrypoint.d.ts +2 -0
  644. package/dist/shared/utils/entrypoint.d.ts.map +1 -0
  645. package/dist/shared/utils/entrypoint.js +15 -0
  646. package/dist/shared/utils/entrypoint.js.map +1 -0
  647. package/dist/shared/utils/index.d.ts +1 -0
  648. package/dist/shared/utils/index.d.ts.map +1 -1
  649. package/dist/shared/utils/index.js +1 -0
  650. package/dist/shared/utils/index.js.map +1 -1
  651. package/dist/shared/utils/safeExternalErrorMessage.d.ts +2 -0
  652. package/dist/shared/utils/safeExternalErrorMessage.d.ts.map +1 -0
  653. package/dist/shared/utils/safeExternalErrorMessage.js +22 -0
  654. package/dist/shared/utils/safeExternalErrorMessage.js.map +1 -0
  655. package/package.json +29 -10
  656. package/builtins/en/facets/instructions/review-pure.md +0 -9
  657. package/builtins/en/facets/personas/pure-reviewer.md +0 -22
  658. package/builtins/ja/facets/instructions/review-pure.md +0 -9
  659. package/builtins/ja/facets/personas/pure-reviewer.md +0 -22
  660. package/dist/core/workflow/claude-effort-compatibility.d.ts +0 -3
  661. package/dist/core/workflow/claude-effort-compatibility.d.ts.map +0 -1
  662. package/dist/core/workflow/claude-effort-compatibility.js +0 -28
  663. package/dist/core/workflow/claude-effort-compatibility.js.map +0 -1
  664. package/dist/core/workflow/provider-model-compatibility.d.ts +0 -6
  665. package/dist/core/workflow/provider-model-compatibility.d.ts.map +0 -1
  666. package/dist/core/workflow/provider-model-compatibility.js +0 -20
  667. package/dist/core/workflow/provider-model-compatibility.js.map +0 -1
  668. package/dist/features/tasks/add/issueTask.d.ts +0 -7
  669. package/dist/features/tasks/add/issueTask.d.ts.map +0 -1
  670. package/dist/features/tasks/add/issueTask.js.map +0 -1
  671. package/dist/infra/config/providerModelCompatibility.d.ts +0 -2
  672. package/dist/infra/config/providerModelCompatibility.d.ts.map +0 -1
  673. package/dist/infra/config/providerModelCompatibility.js +0 -2
  674. package/dist/infra/config/providerModelCompatibility.js.map +0 -1
@@ -0,0 +1,104 @@
1
+ # Implementation Semantics
2
+
3
+ Knowledge for judging the micro-level design flaws that remain even when every test passes. The targets are data structure choice, state normalization, naming-meaning alignment, and fail-fast at boundaries. Each is a question of whether the meaning is correct, not whether the code runs, which is why tests are structurally bad at catching them.
4
+
5
+ ## Meaning-Driven Data Structure Choice
6
+
7
+ Choose collection and dictionary types that match the meaning of the data. In particular, implementing a dictionary keyed by externally supplied strings as a plain object lets inherited prototype properties leak in.
8
+
9
+ | Criterion | Verdict |
10
+ |-----------|---------|
11
+ | A dictionary keyed by external input (IDs, user input) is implemented as `Record` / plain object and membership is checked with `in` or `obj[key]` | REJECT |
12
+ | Behavior can change for keys like `__proto__`, `constructor`, or `toString` | REJECT |
13
+ | Dynamic-key dictionaries use `Map`, or block the inheritance chain via `Object.create(null)` / `Object.hasOwn` | OK |
14
+ | A plain object is used for a fixed, finite key set (e.g. a config object) | OK |
15
+
16
+ Never flag a guarded `Record` as "should be a `Map`". Blocking the inheritance chain via `Object.hasOwn` / `Object.create(null)` is a complete mitigation, and continuing to use `Record` on top of it is not a design flaw. In particular, when a published contract (a frozen type definition) mandates `Record`, guarding is everything the implementation can do. The only reportable finding is a remaining unguarded access, and it must be cited with its location.
17
+
18
+ ```typescript
19
+ // REJECT - passing the ID "toString" reports it as present despite never being registered
20
+ const reservations: Record<string, Reservation> = {};
21
+ if (reservationId in reservations) { /* also matches inherited properties */ }
22
+
23
+ // OK - Map has no inherited-property leakage
24
+ const reservations = new Map<string, Reservation>();
25
+ if (reservations.has(reservationId)) { /* matches registered keys only */ }
26
+ ```
27
+
28
+ ## Single Source of Truth for Derived Values
29
+
30
+ Do not maintain a value in parallel when it can be computed from another. The moment it is duplicated, the two can drift, and the question of which one is authoritative is born with it.
31
+
32
+ | Criterion | Verdict |
33
+ |-----------|---------|
34
+ | A derivable value (total, count, version) is also incremented/decremented as a separate variable | REJECT |
35
+ | Detail records and an aggregate are updated in parallel and can diverge on invalid input | REJECT |
36
+ | Derived values are computed where used, or only the source is updated and the aggregate is obtained via a function | OK |
37
+ | When cached for performance, updates flow through a single path and divergence is detectable | OK |
38
+
39
+ ```typescript
40
+ // REJECT - version is derivable from history length but tracked separately; drift corrupts stock math
41
+ class EventStore {
42
+ private version = 0;
43
+ append(e: Event) { this.events.push(e); this.version++; }
44
+ }
45
+
46
+ // OK - hold only the source and derive the version
47
+ class EventStore {
48
+ get version() { return this.events.length; }
49
+ append(e: Event) { this.events.push(e); }
50
+ }
51
+ ```
52
+
53
+ ## Naming-Meaning Alignment
54
+
55
+ A name states the meaning of the value it actually holds. A variable whose name and content diverge plants a false assumption in the reader and breeds the next bug.
56
+
57
+ | Criterion | Verdict |
58
+ |-----------|---------|
59
+ | The meaning implied by a variable/parameter name differs from the value actually stored (e.g. an ID stored in something named `qty`) | REJECT |
60
+ | Types match but the unit, coordinate system, or normalization state is unreadable from the name and gets mixed up | REJECT |
61
+ | The meaning, unit, and state of the content are unambiguously readable from the name | OK |
62
+
63
+ ```typescript
64
+ // REJECT - named qtyShip, but the value is actually a reservation ID
65
+ function applyShipped(qtyShip: string) { delete this.reservations[qtyShip]; }
66
+
67
+ // OK - the name matches the meaning of the content
68
+ function applyShipped(reservationId: string) { delete this.reservations[reservationId]; }
69
+ ```
70
+
71
+ ## Fail-Fast at Boundaries
72
+
73
+ Fail immediately at the boundary on impossible states and contract-violating input instead of silently ignoring them. Swallowing them lets the inconsistency propagate downstream before it surfaces, making the cause hard to trace.
74
+
75
+ | Criterion | Verdict |
76
+ |-----------|---------|
77
+ | Input with broken preconditions (an event for a nonexistent target, ordering violations) is skipped without a word | REJECT |
78
+ | Exceptions are swallowed and a normal value is returned, so callers cannot detect the failure | REJECT |
79
+ | Contract violations surface immediately as explicit errors, exceptions, or Result types | OK |
80
+ | When ignoring is the spec, that decision is documented in a comment or the spec | OK |
81
+
82
+ ```typescript
83
+ // REJECT - silently ignores events for products created later; corrupted event logs go undetected
84
+ apply(event: StockEvent) {
85
+ const product = this.products[event.productId];
86
+ if (!product) return;
87
+ }
88
+
89
+ // OK - fail immediately on impossible states to detect corruption early
90
+ apply(event: StockEvent) {
91
+ const product = this.products.get(event.productId);
92
+ if (!product) throw new Error(`event for unknown product: ${event.productId}`);
93
+ }
94
+ ```
95
+
96
+ ## Internal State Reference Leaks
97
+
98
+ When a store or read model returns references to its internal state as-is, caller-side mutations propagate into the persisted data. Return defensive copies or immutable views.
99
+
100
+ | Criterion | Verdict |
101
+ |-----------|---------|
102
+ | The collection is copied but the stored objects themselves are shared (shallow copy only) | REJECT |
103
+ | Mutating an obtained reference rewrites the persisted state | REJECT |
104
+ | Internal state is protected via defensive copies, freezing, or read-only views | OK |
@@ -169,10 +169,18 @@ Provider errors propagate through: `AgentResponse.error` → session log → con
169
169
 
170
170
  ## Session Management
171
171
 
172
- Agent sessions are stored per-cwd. Session resume is skipped during worktree/clone execution.
172
+ Agent sessions are stored per-cwd and per-provider. Session resume is skipped during worktree/clone execution.
173
+
174
+ When a normal Phase 1 response merely omits `sessionId`, that alone is not a reason to discard the existing session. Paths that are allowed to continue the existing resume context should preserve the old sessionId.
175
+
176
+ However, when a retry or fallback explicitly runs as a new session and succeeds, a missing `sessionId` must not continue using the old resumed session. The storage layer must be told that the new run produced no sessionId, so the old session is cleared or isolated.
177
+
178
+ The Report Phase is Phase 2 and reads Phase 1 outputs. Its execution contract is readonly and tool-free. Report retry/fallback must preserve `permissionMode: readonly`, empty tool permission, and provider capability overrides such as turn limits.
173
179
 
174
180
  | Criteria | Judgment |
175
181
  |----------|----------|
176
182
  | Session resuming when `cwd !== projectCwd` | REJECT (cross-project contamination) |
177
183
  | Session key missing provider identifier | REJECT (cross-provider contamination) |
178
- | Session broken between phases | REJECT (context loss) |
184
+ | Session broken between phases that should continue context | REJECT (context loss) |
185
+ | Old resumed session remains after successful new-session retry | REJECT (unintended resume) |
186
+ | Report retry/fallback drops readonly mode, tool-free execution, or capability overrides | REJECT |
@@ -30,6 +30,20 @@ const result = await service.getUser('id')
30
30
  expect(result).toEqual(user)
31
31
  ```
32
32
 
33
+ ## Test Double Contract Fidelity
34
+
35
+ When replacing builders, runners, adapters, providers, or similar dependencies with test doubles, match the production semantic contract, not only the TypeScript shape. A test double may simplify only responsibilities the target test does not observe.
36
+
37
+ | Aspect | Check |
38
+ |--------|-------|
39
+ | Return value | Required values, optional values, missing values, and partial-success shapes match production |
40
+ | Input propagation | Overrides, context, options, and other branch-relevant inputs can be received and verified |
41
+ | Constraints | Permissions, capabilities, tool restrictions, and limits propagate with the same meaning as production |
42
+ | Side effects | Session updates, event emission, persistence, and invalidation can be observed |
43
+ | Simplification scope | Test names and expectations do not claim behavior the test double cannot prove |
44
+
45
+ If a test double omits part of the production contract, the test should verify only behavior that does not depend on that omission. In tests for permission propagation, state transitions, or missing-value handling, omitted fields are themselves a common source of bugs.
46
+
33
47
  ## Boundary Value Analysis
34
48
 
35
49
  Boundary values and equivalence partitioning are fundamental unit testing techniques.
@@ -14,6 +14,11 @@
14
14
  | Context fit | ✅ | - |
15
15
  | Scope | ✅ | - |
16
16
 
17
+ ## Non-Finding Concerns
18
+ | Item | Location | Classification | Evidence for Not Making a Finding |
19
+ |------|----------|----------------|-----------------------------------|
20
+ | {Concern, or "none"} | `src/file.ts:42` | false_positive / overreach / out_of_scope / no_issue_after_verification | {Evidence} |
21
+
17
22
  ## Current Iteration Findings (new)
18
23
  | # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
19
24
  |---|------------|------------|----------|----------|-------|----------------|
@@ -34,11 +39,16 @@
34
39
  |---|------------|------------|--------------------------|---------------------|-------|----------------|
35
40
  | 1 | AI-REOPENED-src-file-L55 | hallucination | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
36
41
 
42
+ ## Re-scan Evidence (required from the second review onward)
43
+ | Policy/Knowledge section checked | Evidence in the diff (`file:line` or "none") |
44
+ |----------------------------------|----------------------------------------------|
45
+ | {section name} | {evidence} |
46
+
37
47
  ## Rejection Gate
38
48
  - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
39
49
  - Findings without `finding_id` are invalid
40
50
  ```
41
51
 
42
52
  **Cognitive load reduction rules:**
43
- - No issues → Summary sentence + checklist + empty finding sections (10 lines or fewer)
53
+ - No issues → Summary sentence + checklist + Re-scan Evidence (from the second iteration onward) + Non-Finding Concerns when needed
44
54
  - Issues found → include table rows only for impacted sections (30 lines or fewer)
@@ -41,11 +41,16 @@ Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non
41
41
  - Tests: {Verified target, what was checked, and observed result; or state that it was unverified}
42
42
  - Functional check: {Verified target, what was checked, and observed result; or state that it was unverified}
43
43
 
44
+ ## Re-scan Evidence (required from the second review onward)
45
+ | Policy/Knowledge section checked | Evidence in the diff (`file:line` or "none") |
46
+ |----------------------------------|----------------------------------------------|
47
+ | {section name} | {evidence} |
48
+
44
49
  ## Rejection Gate
45
50
  - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
46
51
  - Findings without `finding_id` are invalid
47
52
  ```
48
53
 
49
54
  **Cognitive load reduction rules:**
50
- - APPROVE → Summary only (5 lines or fewer)
55
+ - APPROVE → Summary + Verification Evidence + Re-scan Evidence (from the second iteration onward). Omit everything else
51
56
  - REJECT → Include only relevant finding rows (30 lines or fewer)
@@ -13,6 +13,11 @@ Fill this when the diff adds or changes IDs, names, metadata, config, environmen
13
13
  |--------------|----------------------|--------------------------|---------------|----------|---------------------------------|
14
14
  | {normal entry / derived condition / validation / evaluation / output / re-injection, etc.} | {Requirement} | `src/file.ts:42` | `src/file.test.ts:10` | ✅/❌/⚠️ | {none / evidence} |
15
15
 
16
+ ## Non-Finding Concerns
17
+ | Item | Location | Classification | Evidence for Not Making a Finding |
18
+ |------|----------|----------------|-----------------------------------|
19
+ | {Concern, or "none"} | `src/file.ts:42` | false_positive / overreach / out_of_scope / no_issue_after_verification | {Evidence} |
20
+
16
21
  ## Current Iteration Findings (new)
17
22
  | # | finding_id | family_tag | Severity | Location | Issue | Impact | Fix Suggestion |
18
23
  |---|------------|------------|----------|----------|-------|--------|----------------|
@@ -38,11 +43,16 @@ Fill this when the diff adds or changes IDs, names, metadata, config, environmen
38
43
  - Build: {Result, or state unverified}
39
44
  - Tests: {Result, or state unverified}
40
45
 
46
+ ## Re-scan Evidence (required from the second review onward)
47
+ | Policy/Knowledge section checked | Evidence in the diff (`file:line` or "none") |
48
+ |----------------------------------|----------------------------------------------|
49
+ | {section name} | {evidence} |
50
+
41
51
  ## Rejection Gate
42
52
  - REJECT only when at least one finding exists in `new`, `persists`, or `reopened`
43
53
  - Findings without `finding_id` are invalid
44
54
  ```
45
55
 
46
56
  **Cognitive load reduction rules:**
47
- - APPROVE: Summary plus Contract Entry Check when needed (10 lines or fewer total)
57
+ - APPROVE: Summary plus Verification Evidence, Contract Entry Check, Re-scan Evidence (from the second iteration onward), and Non-Finding Concerns when needed
48
58
  - REJECT: Include only relevant finding rows (30 lines or fewer)
@@ -40,6 +40,20 @@
40
40
  "conflictId": "C-012345ABCDEF",
41
41
  "evidence": "Evidence that the conflict is adjudicated"
42
42
  }
43
+ ],
44
+ "waivedFindings": [
45
+ {
46
+ "findingId": "F-0003",
47
+ "reason": "The frozen public contract mandates Record and the hasOwn guard is the complete mitigation",
48
+ "evidence": "src/types.ts:94, src/domain.ts:82"
49
+ }
50
+ ],
51
+ "disputeNotes": [
52
+ {
53
+ "findingId": "F-0004",
54
+ "reason": "The coder claimed a spec constraint but the evidence does not point at the location; rejected",
55
+ "evidence": "src/store.ts:10"
56
+ }
43
57
  ]
44
58
  }
45
59
  ```
@@ -0,0 +1,28 @@
1
+ ```markdown
2
+ # Implementation Semantics Review
3
+
4
+ ## Result: APPROVE / REJECT
5
+
6
+ ## Summary
7
+ {1-2 sentence summary of the review outcome}
8
+
9
+ ## Observed Findings
10
+ | # | family_tag | Severity | Location | Problem | Breaking Condition | Suggested Fix |
11
+ |---|------------|----------|----------|---------|--------------------|---------------|
12
+ | 1 | data-structure | High / Medium / Low | `src/file.ts:42` | {problem} | {which input or state breaks it} | {suggested fix} |
13
+
14
+ ## Verification Evidence
15
+ - Diff check: {what was verified}
16
+ - Citation check: {confirmation that every cited file:line was verified against the actual code}
17
+
18
+ ## REJECT Criteria
19
+ - REJECT only when at least one blocking finding exists
20
+ ```
21
+
22
+ **Cognitive-load rules:**
23
+ - APPROVE -> summary only (within 5 lines)
24
+ - REJECT -> only the relevant findings in the table (within 30 lines)
25
+
26
+ **Cognitive-load rules:**
27
+ - APPROVE -> summary only (within 5 lines)
28
+ - REJECT -> only the relevant findings in the table (within 30 lines)
@@ -0,0 +1,50 @@
1
+ ```markdown
2
+ # Implementation Semantics Review
3
+
4
+ ## Verdict: APPROVE / REJECT
5
+
6
+ ## Summary
7
+ {1-2 sentence summary of the review result}
8
+
9
+ ## Non-Finding Concerns
10
+ | Item | Location | Category | Reason not raised as a finding |
11
+ |------|----------|----------|--------------------------------|
12
+ | {concern, or "none"} | `src/file.ts:42` | false_positive / overreach / out_of_scope / no_issue_after_verification | {reason} |
13
+
14
+ ## New Findings (new)
15
+ | # | finding_id | family_tag | Severity | Location | Problem | Breaking condition | Fix |
16
+ |---|------------|------------|----------|----------|---------|--------------------|-----|
17
+ | 1 | SEM-NEW-src-file-L42 | data-structure | High / Medium / Low | `src/file.ts:42` | {problem} | {what input/state breaks it} | {fix} |
18
+
19
+ ## Persisting Findings (persists)
20
+ | # | finding_id | family_tag | Previous evidence | Current evidence | Problem | Fix |
21
+ |---|------------|------------|-------------------|------------------|---------|-----|
22
+ | 1 | SEM-PERSIST-src-file-L77 | derived-state | `src/file.ts:77` | `src/file.ts:77` | {unresolved problem} | {fix} |
23
+
24
+ ## Resolved (resolved)
25
+ | finding_id | Original acceptance condition | Resolution evidence |
26
+ |------------|------------------------------|---------------------|
27
+ | SEM-RESOLVED-src-file-L10 | {acceptance condition of the original finding} | resolved at `src/file.ts:10` |
28
+
29
+ ## Reopened Findings (reopened)
30
+ | # | finding_id | family_tag | Resolution evidence (previous) | Recurrence evidence | Problem | Fix |
31
+ |---|------------|------------|-------------------------------|---------------------|---------|-----|
32
+ | 1 | SEM-REOPENED-src-file-L55 | fail-fast | `previous: src/file.ts:10` | `src/file.ts:55` | {recurred problem} | {fix} |
33
+
34
+ ## Verification Evidence
35
+ - Diff check: {what was checked}
36
+ - Citation existence check: {confirmation that every cited file:line was verified against real code}
37
+
38
+ ## Re-scan Evidence (required from the second review onward)
39
+ | Policy/Knowledge chapter checked | Diff-side evidence (`file:line` or "none applicable") |
40
+ |----------------------------------|------------------------------------------------------|
41
+ | {chapter} | {evidence} |
42
+
43
+ ## Rejection Gate
44
+ - REJECT only when there is at least one `new`, `persists`, or `reopened` finding
45
+ - Findings without a `finding_id` are invalid
46
+ ```
47
+
48
+ **Cognitive load reduction rules:**
49
+ - APPROVE → Summary + Verification Evidence + Re-scan Evidence (from the second iteration onward), plus Non-Finding Concerns only when needed
50
+ - REJECT → List only the applicable findings in tables (30 lines or fewer)
@@ -1,19 +1,25 @@
1
1
  ```markdown
2
- # Pure Review
2
+ # Merge Readiness Review
3
3
 
4
4
  ## Result: APPROVE / REJECT
5
5
 
6
6
  ## Summary
7
- {Summarize in 1-2 sentences whether this change is mergeable quality. If REJECT, mention the largest blocker first}
7
+ {Summarize in 1-2 sentences whether this change is quality-ready for a codebase that must be maintained going forward. If REJECT, mention the largest blocker first}
8
8
 
9
- ## Pure Review Check
9
+ ## Maintainability-Aware Merge Quality Check
10
10
  | # | Area | Status | Evidence (file:line / test / execution evidence) | Comment |
11
11
  |---|------|--------|--------------------------------------------------|---------|
12
12
  | 1 | Requirement fulfillment | Satisfied / Unmet / Unverified | `src/file.ts:42` | {Notes} |
13
13
  | 2 | Existing contract and existing-flow impact | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
14
- | 3 | Tests and verification | Sufficient / Insufficient / Unverified | `npm test` | {Notes} |
14
+ | 3 | Tests and verification | Sufficient / Insufficient / Unverified | `test evidence` | {Notes} |
15
15
  | 4 | Out-of-scope changes and scope creep | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
16
- | 5 | Obvious security, data-protection, or operational risk | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
16
+ | 5 | Maintainability and future changeability | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
17
+ | 6 | Obvious security, data-protection, or operational risk | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
18
+
19
+ ## Cross-Audit Evidence
20
+ | # | Change Category | Extracted Item | Search Terms / Files Checked | Judgment | Comment |
21
+ |---|-----------------|----------------|------------------------------|----------|---------|
22
+ | 1 | ID / config / output contract / type / helper / adapter / entrypoint | {item} | `{search term}` / `file:line` | No issue / Issue found / Unverified | {Notes} |
17
23
 
18
24
  ## Requirements Cross-Reference
19
25
  | # | Requirement (from task) | Status | Evidence (file:line) | Comment |
@@ -28,7 +34,7 @@
28
34
  ## Observed Findings
29
35
  | # | family_tag | Category | Severity | Location | Issue | Fix Suggestion |
30
36
  |---|------------|----------|----------|----------|-------|----------------|
31
- | 1 | mergeability | Regression / Requirement gap / Missing tests / Contract break / Scope creep | high / medium / low | `src/file.ts:42` | Issue description | Fix suggestion |
37
+ | 1 | maintainability-readiness | Regression / Requirement gap / Missing tests / Contract break / Maintainability degradation / Scope creep | high / medium / low | `src/file.ts:42` | Issue description | Fix suggestion |
32
38
 
33
39
  ## Verification Evidence
34
40
  - Build: {Verified target, what was checked, and observed result; or state that it was unverified}
@@ -37,9 +43,9 @@
37
43
 
38
44
  ## Rejection Gate
39
45
  - REJECT if at least one merge-blocking finding is observed
40
- - Unverified areas should block merge only when they affect mergeability
46
+ - Unverified areas should block merge only when they affect maintainability-aware merge quality
41
47
  ```
42
48
 
43
49
  **Cognitive load reduction rules:**
44
- - APPROVE: Summary + Pure Review Check only (10 lines or fewer)
50
+ - APPROVE: Summary + Maintainability-Aware Merge Quality Check + Cross-Audit Evidence only (15 lines or fewer)
45
51
  - REJECT: Prioritize blocker findings (40 lines or fewer)
@@ -1,19 +1,25 @@
1
1
  ```markdown
2
- # Pure Review
2
+ # Merge Readiness Review
3
3
 
4
4
  ## Result: APPROVE / REJECT
5
5
 
6
6
  ## Summary
7
- {Summarize in 1-2 sentences whether this change is mergeable quality. If REJECT, mention the largest blocker first}
7
+ {Summarize in 1-2 sentences whether this change is quality-ready for a codebase that must be maintained going forward. If REJECT, mention the largest blocker first}
8
8
 
9
- ## Pure Review Check
9
+ ## Maintainability-Aware Merge Quality Check
10
10
  | # | Area | Status | Evidence (file:line / test / execution evidence) | Comment |
11
11
  |---|------|--------|--------------------------------------------------|---------|
12
12
  | 1 | Requirement fulfillment | Satisfied / Unmet / Unverified | `src/file.ts:42` | {Notes} |
13
13
  | 2 | Existing contract and existing-flow impact | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
14
- | 3 | Tests and verification | Sufficient / Insufficient / Unverified | `npm test` | {Notes} |
14
+ | 3 | Tests and verification | Sufficient / Insufficient / Unverified | `test evidence` | {Notes} |
15
15
  | 4 | Out-of-scope changes and scope creep | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
16
- | 5 | Obvious security, data-protection, or operational risk | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
16
+ | 5 | Maintainability and future changeability | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
17
+ | 6 | Obvious security, data-protection, or operational risk | No issue / Issue found / Unverified | `src/file.ts:42` | {Notes} |
18
+
19
+ ## Cross-Audit Evidence
20
+ | # | Change Category | Extracted Item | Search Terms / Files Checked | Judgment | Comment |
21
+ |---|-----------------|----------------|------------------------------|----------|---------|
22
+ | 1 | ID / config / output contract / type / helper / adapter / entrypoint | {item} | `{search term}` / `file:line` | No issue / Issue found / Unverified | {Notes} |
17
23
 
18
24
  ## Requirements Cross-Reference
19
25
  | # | Requirement (from task) | Original Requirement Source | Status | Evidence (file:line) | Exception / Unverified Evidence |
@@ -28,22 +34,22 @@
28
34
  ## Current Iteration Findings (new)
29
35
  | # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
30
36
  |---|------------|------------|----------|----------|-------|----------------|
31
- | 1 | PURE-NEW-src-file-L42 | mergeability | Regression / Requirement gap / Missing tests / Contract break / Scope creep | `src/file.ts:42` | Issue description | Fix suggestion |
37
+ | 1 | MERGE-NEW-src-file-L42 | maintainability-readiness | Regression / Requirement gap / Missing tests / Contract break / Maintainability degradation / Scope creep | `src/file.ts:42` | Issue description | Fix suggestion |
32
38
 
33
39
  ## Carry-over Findings (persists)
34
40
  | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
35
41
  |---|------------|------------|-------------------|------------------|-------|----------------|
36
- | 1 | PURE-PERSIST-src-file-L77 | mergeability | `file:line` | `file:line` | Unresolved | Fix suggestion |
42
+ | 1 | MERGE-PERSIST-src-file-L77 | maintainability-readiness | `file:line` | `file:line` | Unresolved | Fix suggestion |
37
43
 
38
44
  ## Resolved Findings (resolved)
39
45
  | finding_id | Original Expected Result | Resolution Evidence |
40
46
  |------------|--------------------------|---------------------|
41
- | PURE-RESOLVED-src-file-L10 | {Original finding acceptance criteria} | `file:line` resolves the issue |
47
+ | MERGE-RESOLVED-src-file-L10 | {Original finding acceptance criteria} | `file:line` resolves the issue |
42
48
 
43
49
  ## Reopened Findings (reopened)
44
50
  | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
45
51
  |---|------------|------------|--------------------------|---------------------|-------|----------------|
46
- | 1 | PURE-REOPENED-src-file-L55 | mergeability | `Previously fixed at file:line` | `Recurred at file:line` | Issue description | Fix approach |
52
+ | 1 | MERGE-REOPENED-src-file-L55 | maintainability-readiness | `Previously fixed at file:line` | `Recurred at file:line` | Issue description | Fix approach |
47
53
 
48
54
  ## Verification Evidence
49
55
  - Build: {Verified target, what was checked, and observed result; or state that it was unverified}
@@ -53,9 +59,9 @@
53
59
  ## Rejection Gate
54
60
  - REJECT if at least one merge-blocking issue exists in `new`, `persists`, or `reopened`
55
61
  - Findings without `finding_id` are invalid
56
- - Unverified areas should block merge only when they affect mergeability
62
+ - Unverified areas should block merge only when they affect maintainability-aware merge quality
57
63
  ```
58
64
 
59
65
  **Cognitive load reduction rules:**
60
- - APPROVE: Summary + Pure Review Check only (10 lines or fewer)
66
+ - APPROVE: Summary + Maintainability-Aware Merge Quality Check + Cross-Audit Evidence only (15 lines or fewer)
61
67
  - REJECT: Prioritize blocker findings (40 lines or fewer)
@@ -18,7 +18,7 @@ Extract requirements from the task spec and verify each one individually against
18
18
  - ✅ without evidence is invalid (must verify against actual code)
19
19
  - Do not mark a row as ✅ when the evidence covers only part of the cases
20
20
  - Treat optionalization, exclusion, or exception not present in the task spec as unmet
21
- - Do not rely on plan report's judgment; independently verify mergeability
21
+ - Do not rely on plan report's judgment; independently verify maintainability-aware merge quality
22
22
 
23
23
  ## Re-evaluation of Prior Findings
24
24
  | finding_id | Prior Status | Original Expected Result | Re-evaluation | Evidence |
@@ -28,7 +28,11 @@ Extract requirements from the task spec and verify each one individually against
28
28
  - If final judgment differs from prior review conclusions, explain why with evidence
29
29
  - Treat `resolved` as valid only when it satisfies the original expected result and original requirement
30
30
  - If marking `false_positive` or `overreach`, state whether it conflicts with the task objective, the plan, or both
31
- - If overturning a pure-review conclusion, explain why with concrete evidence
31
+
32
+ ## Unclassified Concern Check
33
+ | Review | Concern | Finding State | Supervisor Judgment | Evidence |
34
+ |--------|---------|---------------|---------------------|----------|
35
+ | {Review name} | {Concern, or "none"} | made finding / classified non-finding / unclassified | valid / REJECT reason / out of scope | `src/file.ts:42` |
32
36
 
33
37
  ## Maintenance Scope Check (maintenance workflows only)
34
38
 
@@ -1,11 +1,36 @@
1
1
  ```markdown
2
2
  # Test Creation Report
3
3
 
4
+ ## Requirement-Test Matrix
5
+ | Requirement ID | Observable Contract | Entry / Path | Test | Result | Uncovered Reason |
6
+ |----------------|---------------------|--------------|------|--------|------------------|
7
+ | `{ID}` | {return value, persisted format, config key, CLI output, event, error classification, side effect, etc.} | {CLI / config load / config save / runtime / batch / child / event / persistence, etc.} | `{test name or test file}` | Created / Existing / Not created | {reason only when not created} |
8
+
9
+ ## Risky Branch Tests
10
+ | Branch | Incorrect Implementation To Catch | Test | Uncovered Reason |
11
+ |--------|-----------------------------------|------|------------------|
12
+ | {missing, unknown, invalid value, precedence conflict, override, round-trip, partial failure, etc.} | {incorrect implementation this test should detect} | `{test name or test file}` | {reason only when not created} |
13
+
14
+ ## Cross-Path Tests
15
+ | Path | Producer | Consumer | Contract Guaranteed | Test | Uncovered Reason |
16
+ |------|----------|----------|---------------------|------|------------------|
17
+ | {path from entry point to endpoint} | {where the value or state is produced} | {where the value or state is consumed} | {propagation, conversion, persistence, event emission, etc.} | `{test name or test file}` | {reason only when not created} |
18
+
19
+ ## Negative Contracts
20
+ | Prohibited Behavior | Observation Method | Test | Uncovered Reason |
21
+ |---------------------|--------------------|------|------------------|
22
+ | {value that must not be emitted, format that must not be saved, data that must not be sent, etc.} | {how to observe it as behavior} | `{test name or test file}` | {reason only when not created} |
23
+
4
24
  ## Created Tests
5
25
  | File | Type | Count | Summary |
6
26
  |------|------|-------|---------|
7
27
  | `{test file path}` | Unit / Integration | {N} | {what is tested} |
8
28
 
29
+ ## Uncovered Items
30
+ | Requirement / Branch | Uncovered Reason | Required Follow-up |
31
+ |----------------------|------------------|--------------------|
32
+ | {uncovered requirement or branch} | {why it was not tested} | {implementation, review, or manual verification needed later} |
33
+
9
34
  ## Execution Results (Reference)
10
35
  Test failures and import errors are expected before implementation.
11
36
 
@@ -0,0 +1,27 @@
1
+ # Implementation Semantics Reviewer
2
+
3
+ You are a code reviewer specializing in implementation semantics. You detect the micro-level design flaws that slip through passing tests: data structure choice, state normalization, naming-meaning alignment, and fail-fast at boundaries.
4
+
5
+ ## Role Boundaries
6
+
7
+ **What you do:**
8
+ - Verify that dictionary, collection, and type choices match the meaning of the data they hold
9
+ - Verify that no value is kept in parallel when it can be derived (single source of truth violations)
10
+ - Verify that variable, parameter, and field names match the meaning of the values actually stored
11
+ - Verify that impossible states and invalid inputs are not silently ignored
12
+ - Verify that references to internal state do not leak out raw
13
+
14
+ **What you don't do:**
15
+ - Evaluate module decomposition, layers, or dependency direction (architecture-reviewer's job)
16
+ - Flag coding conventions, spec compliance, or missing tests (coding-reviewer's job)
17
+ - Detect AI-specific antipatterns (ai-antipattern-reviewer's job)
18
+ - Write code yourself
19
+ - Demand rewrites based on preference alone
20
+
21
+ ## Behavioral Stance
22
+
23
+ - Ask "is the meaning correct", not "do the tests pass"
24
+ - Tie every finding to real code lines and the concrete conditions under which it breaks
25
+ - Aggregate multiple locations of the same kind of problem into one representative finding and spend the remaining attention hunting different kinds
26
+ - Do not raise findings whose reason to fix is weak
27
+ - APPROVE when there is no problem
@@ -0,0 +1,28 @@
1
+ # Merge Readiness Reviewer
2
+
3
+ You are the final gate reviewer who decides whether the converged change is quality-ready to enter a codebase that must be maintained going forward. Without limiting yourself to one specialty, inspect the accumulated diff, surrounding code, and execution evidence for cross-cutting misses, maintainability risks, and merge blockers.
4
+
5
+ ## Role Boundaries
6
+
7
+ **Do:**
8
+ - Judge whether the change is quality-ready for a maintainable codebase based on actual code and diffs
9
+ - Detect unmet requests, broken existing behavior, missing tests, out-of-scope changes, maintainability degradation, and obvious risks
10
+ - Check cross-cutting coverage for changed contracts, identifiers, config, outputs, entry points, and persisted/displayed/executed paths
11
+ - Report only blocking issues with concrete evidence
12
+
13
+ **Don't:**
14
+ - Write code yourself
15
+ - Deep-review architecture direction; that is the Architecture Reviewer's job
16
+ - Deep-review security vulnerabilities; that is the Security Reviewer's job
17
+ - Deep-review test design; that is the Testing Reviewer's job
18
+ - Deep-review code style or implementation craft; that is the Coding Reviewer's job
19
+
20
+ ## Behavioral Principles
21
+
22
+ - Keep the final question as: "Is this change quality-ready for a codebase we must keep maintaining?"
23
+ - Re-check the accumulated diff even when specialist reviews have passed
24
+ - Trace changed names, contracts, and entry points across same-kind usages
25
+ - Do not miss states that future maintainers cannot safely trace, modify, or verify
26
+ - Do not mark an item verified unless you actually searched or inspected it
27
+ - Judge `resolved` against the original finding's expected result and acceptance criteria
28
+ - Report only issues that should block the merge, not preferences or general advice
@@ -22,7 +22,7 @@ you verify "**was the right thing built (Validation)**".
22
22
  ## Behavioral Principles
23
23
 
24
24
  - Re-check requirements yourself. Do not adopt the decomposition from earlier reviews without verification
25
- - Treat `pure-review` as supporting material, not as the final answer
25
+ - Treat `merge-readiness-review` as supporting material, not as the final answer
26
26
  - Mark missing execution evidence as unverified instead of assuming success
27
27
  - Treat contradictions between report text and execution evidence as first-class findings
28
28
  - Distinguish `false_positive` from `overreach`; a technically invalid finding and a scope-exceeding finding are not the same
@@ -135,6 +135,24 @@ Verification approach:
135
135
  3. If tests are added as part of the fix, verify they test "correct behavior after the fix" (not "the finding itself")
136
136
  4. For mid-PR specification changes, verify the tests cover the new behavior in the layer that owns it, not only the absence of the old specification
137
137
 
138
+ ## Superficial Fixes Through Test Doubles
139
+
140
+ AI sometimes makes tests pass by loosening test doubles or ignoring arguments the production code uses instead of fixing the production contract. A passing test is evidence only when it exercised the same semantic contract as production.
141
+
142
+ | Pattern | Example | Verdict |
143
+ |---------|---------|---------|
144
+ | A test double omits constraints or overrides always applied by the production helper | Permissions, capabilities, limits, or missing-value semantics differ from production | REJECT |
145
+ | A mock ignores input that production uses for branching | Accepts `options` or `context` but never verifies them | REJECT |
146
+ | A dependency with side-effect contracts is replaced by a return-only stub | Session updates, cache invalidation, or event emission are unobserved | REJECT |
147
+ | The test only verifies that something was called, not the arguments or side effects | The test passes even when constraints are not propagated | REJECT |
148
+ | The test double reproduces the observable production contract and assertions inspect arguments and side effects | Key options, missing values, and failure-state transitions are verified | OK |
149
+
150
+ Verification approach:
151
+ 1. Inspect the replaced production function, builder, or adapter for return shape, missing values, side effects, and override propagation
152
+ 2. Check whether the test double collapses branch-relevant inputs into fixed values
153
+ 3. When the fix concerns state transitions or permission propagation, verify call arguments and side effects in addition to final state
154
+ 4. Check that test names and completion reports do not overclaim behavior the test double cannot prove
155
+
138
156
  ## Context Fitness Assessment
139
157
 
140
158
  Does the code fit this specific project?