takt 0.29.0 → 0.30.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 (475) hide show
  1. package/README.md +0 -1
  2. package/builtins/en/config.yaml +13 -66
  3. package/builtins/en/facets/instructions/fix.md +18 -6
  4. package/builtins/en/facets/instructions/loop-monitor-reviewers-fix.md +9 -0
  5. package/builtins/en/facets/instructions/review-arch.md +6 -0
  6. package/builtins/en/facets/instructions/review-cqrs-es.md +6 -0
  7. package/builtins/en/facets/instructions/review-frontend.md +6 -0
  8. package/builtins/en/facets/instructions/review-qa.md +6 -0
  9. package/builtins/en/facets/instructions/review-requirements.md +6 -0
  10. package/builtins/en/facets/instructions/review-security.md +6 -0
  11. package/builtins/en/facets/instructions/review-terraform.md +6 -0
  12. package/builtins/en/facets/instructions/review-test.md +6 -0
  13. package/builtins/en/facets/output-contracts/ai-review.md +12 -7
  14. package/builtins/en/facets/output-contracts/architecture-review.md +12 -7
  15. package/builtins/en/facets/output-contracts/cqrs-es-review.md +26 -6
  16. package/builtins/en/facets/output-contracts/frontend-review.md +27 -4
  17. package/builtins/en/facets/output-contracts/qa-review.md +12 -7
  18. package/builtins/en/facets/output-contracts/requirements-review.md +12 -7
  19. package/builtins/en/facets/output-contracts/security-review.md +12 -7
  20. package/builtins/en/facets/output-contracts/terraform-review.md +25 -20
  21. package/builtins/en/facets/output-contracts/testing-review.md +12 -7
  22. package/builtins/en/pieces/backend-cqrs-mini.yaml +92 -63
  23. package/builtins/en/pieces/backend-cqrs-review-fix.yaml +72 -56
  24. package/builtins/en/pieces/backend-cqrs-review.yaml +49 -37
  25. package/builtins/en/pieces/backend-cqrs.yaml +112 -77
  26. package/builtins/en/pieces/backend-mini.yaml +92 -63
  27. package/builtins/en/pieces/backend-review-fix.yaml +64 -50
  28. package/builtins/en/pieces/backend-review.yaml +41 -31
  29. package/builtins/en/pieces/backend.yaml +112 -77
  30. package/builtins/en/pieces/compound-eye.yaml +24 -18
  31. package/builtins/en/pieces/deep-research.yaml +35 -27
  32. package/builtins/en/pieces/default.yaml +90 -62
  33. package/builtins/en/pieces/dual-cqrs-mini.yaml +92 -63
  34. package/builtins/en/pieces/dual-cqrs-review-fix.yaml +80 -62
  35. package/builtins/en/pieces/dual-cqrs-review.yaml +57 -43
  36. package/builtins/en/pieces/dual-cqrs.yaml +119 -83
  37. package/builtins/en/pieces/dual-mini.yaml +92 -63
  38. package/builtins/en/pieces/dual-review-fix.yaml +72 -56
  39. package/builtins/en/pieces/dual-review.yaml +49 -37
  40. package/builtins/en/pieces/dual.yaml +119 -83
  41. package/builtins/en/pieces/e2e-test.yaml +73 -57
  42. package/builtins/en/pieces/frontend-mini.yaml +92 -63
  43. package/builtins/en/pieces/frontend-review-fix.yaml +72 -56
  44. package/builtins/en/pieces/frontend-review.yaml +49 -37
  45. package/builtins/en/pieces/frontend.yaml +120 -83
  46. package/builtins/en/pieces/magi.yaml +7 -18
  47. package/builtins/en/pieces/research.yaml +7 -18
  48. package/builtins/en/pieces/review-fix.yaml +85 -67
  49. package/builtins/en/pieces/review.yaml +62 -48
  50. package/builtins/en/pieces/takt-default-review-fix.yaml +75 -59
  51. package/builtins/en/pieces/takt-default-team-leader.yaml +133 -95
  52. package/builtins/en/pieces/takt-default.yaml +133 -95
  53. package/builtins/en/pieces/terraform.yaml +88 -70
  54. package/builtins/en/pieces/unit-test.yaml +73 -57
  55. package/builtins/ja/config.yaml +12 -65
  56. package/builtins/ja/facets/instructions/fix.md +18 -6
  57. package/builtins/ja/facets/instructions/loop-monitor-reviewers-fix.md +9 -0
  58. package/builtins/ja/facets/instructions/review-arch.md +6 -0
  59. package/builtins/ja/facets/instructions/review-cqrs-es.md +6 -0
  60. package/builtins/ja/facets/instructions/review-frontend.md +6 -0
  61. package/builtins/ja/facets/instructions/review-qa.md +6 -0
  62. package/builtins/ja/facets/instructions/review-requirements.md +6 -0
  63. package/builtins/ja/facets/instructions/review-security.md +6 -0
  64. package/builtins/ja/facets/instructions/review-terraform.md +6 -0
  65. package/builtins/ja/facets/instructions/review-test.md +6 -0
  66. package/builtins/ja/facets/output-contracts/ai-review.md +12 -7
  67. package/builtins/ja/facets/output-contracts/architecture-review.md +12 -7
  68. package/builtins/ja/facets/output-contracts/cqrs-es-review.md +26 -6
  69. package/builtins/ja/facets/output-contracts/frontend-review.md +27 -4
  70. package/builtins/ja/facets/output-contracts/qa-review.md +12 -7
  71. package/builtins/ja/facets/output-contracts/requirements-review.md +12 -7
  72. package/builtins/ja/facets/output-contracts/security-review.md +12 -7
  73. package/builtins/ja/facets/output-contracts/terraform-review.md +12 -7
  74. package/builtins/ja/facets/output-contracts/testing-review.md +12 -7
  75. package/builtins/ja/pieces/backend-cqrs-mini.yaml +92 -63
  76. package/builtins/ja/pieces/backend-cqrs-review-fix.yaml +72 -56
  77. package/builtins/ja/pieces/backend-cqrs-review.yaml +49 -37
  78. package/builtins/ja/pieces/backend-cqrs.yaml +112 -77
  79. package/builtins/ja/pieces/backend-mini.yaml +92 -63
  80. package/builtins/ja/pieces/backend-review-fix.yaml +64 -50
  81. package/builtins/ja/pieces/backend-review.yaml +41 -31
  82. package/builtins/ja/pieces/backend.yaml +112 -77
  83. package/builtins/ja/pieces/compound-eye.yaml +24 -18
  84. package/builtins/ja/pieces/deep-research.yaml +35 -27
  85. package/builtins/ja/pieces/default.yaml +90 -62
  86. package/builtins/ja/pieces/dual-cqrs-mini.yaml +92 -63
  87. package/builtins/ja/pieces/dual-cqrs-review-fix.yaml +80 -62
  88. package/builtins/ja/pieces/dual-cqrs-review.yaml +57 -43
  89. package/builtins/ja/pieces/dual-cqrs.yaml +119 -83
  90. package/builtins/ja/pieces/dual-mini.yaml +92 -63
  91. package/builtins/ja/pieces/dual-review-fix.yaml +72 -56
  92. package/builtins/ja/pieces/dual-review.yaml +49 -37
  93. package/builtins/ja/pieces/dual.yaml +119 -83
  94. package/builtins/ja/pieces/e2e-test.yaml +73 -57
  95. package/builtins/ja/pieces/frontend-mini.yaml +92 -63
  96. package/builtins/ja/pieces/frontend-review-fix.yaml +72 -56
  97. package/builtins/ja/pieces/frontend-review.yaml +49 -37
  98. package/builtins/ja/pieces/frontend.yaml +120 -83
  99. package/builtins/ja/pieces/magi.yaml +7 -18
  100. package/builtins/ja/pieces/research.yaml +7 -18
  101. package/builtins/ja/pieces/review-fix.yaml +85 -67
  102. package/builtins/ja/pieces/review.yaml +62 -48
  103. package/builtins/ja/pieces/takt-default-review-fix.yaml +75 -59
  104. package/builtins/ja/pieces/takt-default-team-leader.yaml +133 -95
  105. package/builtins/ja/pieces/takt-default.yaml +133 -95
  106. package/builtins/ja/pieces/terraform.yaml +88 -70
  107. package/builtins/ja/pieces/unit-test.yaml +73 -57
  108. package/dist/agents/agent-usecases.d.ts +4 -42
  109. package/dist/agents/agent-usecases.d.ts.map +1 -1
  110. package/dist/agents/agent-usecases.js +2 -237
  111. package/dist/agents/agent-usecases.js.map +1 -1
  112. package/dist/agents/decompose-task-usecase.d.ts +28 -0
  113. package/dist/agents/decompose-task-usecase.d.ts.map +1 -0
  114. package/dist/agents/decompose-task-usecase.js +159 -0
  115. package/dist/agents/decompose-task-usecase.js.map +1 -0
  116. package/dist/agents/judge-status-usecase.d.ts +38 -0
  117. package/dist/agents/judge-status-usecase.d.ts.map +1 -0
  118. package/dist/agents/judge-status-usecase.js +121 -0
  119. package/dist/agents/judge-status-usecase.js.map +1 -0
  120. package/dist/agents/runner.d.ts.map +1 -1
  121. package/dist/agents/runner.js +30 -8
  122. package/dist/agents/runner.js.map +1 -1
  123. package/dist/agents/types.d.ts +4 -0
  124. package/dist/agents/types.d.ts.map +1 -1
  125. package/dist/app/cli/commands.d.ts +1 -1
  126. package/dist/app/cli/commands.js +4 -12
  127. package/dist/app/cli/commands.js.map +1 -1
  128. package/dist/app/cli/helpers.d.ts +2 -0
  129. package/dist/app/cli/helpers.d.ts.map +1 -1
  130. package/dist/app/cli/helpers.js +19 -0
  131. package/dist/app/cli/helpers.js.map +1 -1
  132. package/dist/app/cli/index.d.ts.map +1 -1
  133. package/dist/app/cli/index.js +13 -12
  134. package/dist/app/cli/index.js.map +1 -1
  135. package/dist/app/cli/routing.d.ts.map +1 -1
  136. package/dist/app/cli/routing.js +5 -1
  137. package/dist/app/cli/routing.js.map +1 -1
  138. package/dist/core/logging/contracts.d.ts +9 -0
  139. package/dist/core/logging/contracts.d.ts.map +1 -0
  140. package/dist/core/logging/contracts.js +8 -0
  141. package/dist/core/logging/contracts.js.map +1 -0
  142. package/dist/core/logging/providerEvent.d.ts +51 -0
  143. package/dist/core/logging/providerEvent.d.ts.map +1 -0
  144. package/dist/core/logging/providerEvent.js +104 -0
  145. package/dist/core/logging/providerEvent.js.map +1 -0
  146. package/dist/core/logging/providerEventLogger.d.ts +22 -0
  147. package/dist/core/logging/providerEventLogger.d.ts.map +1 -0
  148. package/dist/core/logging/providerEventLogger.js +61 -0
  149. package/dist/core/logging/providerEventLogger.js.map +1 -0
  150. package/dist/core/logging/usageEventLogger.d.ts +30 -0
  151. package/dist/core/logging/usageEventLogger.d.ts.map +1 -0
  152. package/dist/core/logging/usageEventLogger.js +65 -0
  153. package/dist/core/logging/usageEventLogger.js.map +1 -0
  154. package/dist/core/models/index.d.ts +1 -1
  155. package/dist/core/models/index.d.ts.map +1 -1
  156. package/dist/core/models/index.js.map +1 -1
  157. package/dist/core/models/persisted-global-config.d.ts +66 -23
  158. package/dist/core/models/persisted-global-config.d.ts.map +1 -1
  159. package/dist/core/models/piece-types.d.ts +1 -2
  160. package/dist/core/models/piece-types.d.ts.map +1 -1
  161. package/dist/core/models/response.d.ts +12 -0
  162. package/dist/core/models/response.d.ts.map +1 -1
  163. package/dist/core/models/schemas.d.ts +94 -64
  164. package/dist/core/models/schemas.d.ts.map +1 -1
  165. package/dist/core/models/schemas.js +31 -35
  166. package/dist/core/models/schemas.js.map +1 -1
  167. package/dist/core/models/types.d.ts +2 -2
  168. package/dist/core/models/types.d.ts.map +1 -1
  169. package/dist/core/piece/engine/ArpeggioRunner.d.ts +3 -3
  170. package/dist/core/piece/engine/ArpeggioRunner.d.ts.map +1 -1
  171. package/dist/core/piece/engine/ArpeggioRunner.js +18 -5
  172. package/dist/core/piece/engine/ArpeggioRunner.js.map +1 -1
  173. package/dist/core/piece/engine/MovementExecutor.d.ts +4 -3
  174. package/dist/core/piece/engine/MovementExecutor.d.ts.map +1 -1
  175. package/dist/core/piece/engine/MovementExecutor.js +14 -4
  176. package/dist/core/piece/engine/MovementExecutor.js.map +1 -1
  177. package/dist/core/piece/engine/OptionsBuilder.d.ts +4 -3
  178. package/dist/core/piece/engine/OptionsBuilder.d.ts.map +1 -1
  179. package/dist/core/piece/engine/OptionsBuilder.js +15 -8
  180. package/dist/core/piece/engine/OptionsBuilder.js.map +1 -1
  181. package/dist/core/piece/engine/ParallelRunner.d.ts +4 -3
  182. package/dist/core/piece/engine/ParallelRunner.d.ts.map +1 -1
  183. package/dist/core/piece/engine/ParallelRunner.js +12 -4
  184. package/dist/core/piece/engine/ParallelRunner.js.map +1 -1
  185. package/dist/core/piece/engine/PieceEngine.d.ts.map +1 -1
  186. package/dist/core/piece/engine/PieceEngine.js +67 -17
  187. package/dist/core/piece/engine/PieceEngine.js.map +1 -1
  188. package/dist/core/piece/engine/TeamLeaderRunner.d.ts +3 -3
  189. package/dist/core/piece/engine/TeamLeaderRunner.d.ts.map +1 -1
  190. package/dist/core/piece/engine/TeamLeaderRunner.js +10 -2
  191. package/dist/core/piece/engine/TeamLeaderRunner.js.map +1 -1
  192. package/dist/core/piece/engine/team-leader-common.d.ts.map +1 -1
  193. package/dist/core/piece/engine/team-leader-common.js +11 -1
  194. package/dist/core/piece/engine/team-leader-common.js.map +1 -1
  195. package/dist/core/piece/phase-runner.d.ts +7 -3
  196. package/dist/core/piece/phase-runner.d.ts.map +1 -1
  197. package/dist/core/piece/phase-runner.js +24 -17
  198. package/dist/core/piece/phase-runner.js.map +1 -1
  199. package/dist/core/piece/status-judgment-phase.d.ts.map +1 -1
  200. package/dist/core/piece/status-judgment-phase.js +34 -3
  201. package/dist/core/piece/status-judgment-phase.js.map +1 -1
  202. package/dist/core/piece/types.d.ts +14 -2
  203. package/dist/core/piece/types.d.ts.map +1 -1
  204. package/dist/core/runtime/runtime-environment.d.ts.map +1 -1
  205. package/dist/core/runtime/runtime-environment.js +6 -0
  206. package/dist/core/runtime/runtime-environment.js.map +1 -1
  207. package/dist/features/config/index.d.ts +0 -1
  208. package/dist/features/config/index.d.ts.map +1 -1
  209. package/dist/features/config/index.js +0 -1
  210. package/dist/features/config/index.js.map +1 -1
  211. package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
  212. package/dist/features/interactive/conversationLoop.js +20 -9
  213. package/dist/features/interactive/conversationLoop.js.map +1 -1
  214. package/dist/features/interactive/runSessionReader.d.ts.map +1 -1
  215. package/dist/features/interactive/runSessionReader.js +4 -1
  216. package/dist/features/interactive/runSessionReader.js.map +1 -1
  217. package/dist/features/pieceSelection/index.d.ts +4 -4
  218. package/dist/features/pieceSelection/index.d.ts.map +1 -1
  219. package/dist/features/pieceSelection/index.js +25 -59
  220. package/dist/features/pieceSelection/index.js.map +1 -1
  221. package/dist/features/prompt/preview.d.ts.map +1 -1
  222. package/dist/features/prompt/preview.js +2 -1
  223. package/dist/features/prompt/preview.js.map +1 -1
  224. package/dist/features/repertoire/pack-summary.d.ts +2 -2
  225. package/dist/features/repertoire/pack-summary.d.ts.map +1 -1
  226. package/dist/features/repertoire/pack-summary.js +11 -8
  227. package/dist/features/repertoire/pack-summary.js.map +1 -1
  228. package/dist/features/tasks/execute/parallelExecution.d.ts +1 -1
  229. package/dist/features/tasks/execute/parallelExecution.d.ts.map +1 -1
  230. package/dist/features/tasks/execute/parallelExecution.js +4 -4
  231. package/dist/features/tasks/execute/parallelExecution.js.map +1 -1
  232. package/dist/features/tasks/execute/pieceExecution.d.ts +0 -6
  233. package/dist/features/tasks/execute/pieceExecution.d.ts.map +1 -1
  234. package/dist/features/tasks/execute/pieceExecution.js +62 -40
  235. package/dist/features/tasks/execute/pieceExecution.js.map +1 -1
  236. package/dist/features/tasks/execute/pieceExecutionUtils.d.ts +9 -0
  237. package/dist/features/tasks/execute/pieceExecutionUtils.d.ts.map +1 -0
  238. package/dist/features/tasks/execute/pieceExecutionUtils.js +25 -0
  239. package/dist/features/tasks/execute/pieceExecutionUtils.js.map +1 -0
  240. package/dist/features/tasks/execute/resolveTask.d.ts +1 -1
  241. package/dist/features/tasks/execute/resolveTask.d.ts.map +1 -1
  242. package/dist/features/tasks/execute/resolveTask.js +6 -3
  243. package/dist/features/tasks/execute/resolveTask.js.map +1 -1
  244. package/dist/features/tasks/execute/sessionLogger.d.ts +18 -10
  245. package/dist/features/tasks/execute/sessionLogger.d.ts.map +1 -1
  246. package/dist/features/tasks/execute/sessionLogger.js +116 -35
  247. package/dist/features/tasks/execute/sessionLogger.js.map +1 -1
  248. package/dist/features/tasks/execute/taskExecution.d.ts +8 -7
  249. package/dist/features/tasks/execute/taskExecution.d.ts.map +1 -1
  250. package/dist/features/tasks/execute/taskExecution.js +15 -12
  251. package/dist/features/tasks/execute/taskExecution.js.map +1 -1
  252. package/dist/features/tasks/execute/taskResultHandler.d.ts +1 -0
  253. package/dist/features/tasks/execute/taskResultHandler.d.ts.map +1 -1
  254. package/dist/features/tasks/execute/taskResultHandler.js +4 -0
  255. package/dist/features/tasks/execute/taskResultHandler.js.map +1 -1
  256. package/dist/features/tasks/execute/traceReport.d.ts +9 -0
  257. package/dist/features/tasks/execute/traceReport.d.ts.map +1 -0
  258. package/dist/features/tasks/execute/traceReport.js +28 -0
  259. package/dist/features/tasks/execute/traceReport.js.map +1 -0
  260. package/dist/features/tasks/execute/traceReportParser.d.ts +13 -0
  261. package/dist/features/tasks/execute/traceReportParser.d.ts.map +1 -0
  262. package/dist/features/tasks/execute/traceReportParser.js +188 -0
  263. package/dist/features/tasks/execute/traceReportParser.js.map +1 -0
  264. package/dist/features/tasks/execute/traceReportRedaction.d.ts +6 -0
  265. package/dist/features/tasks/execute/traceReportRedaction.d.ts.map +1 -0
  266. package/dist/features/tasks/execute/traceReportRedaction.js +64 -0
  267. package/dist/features/tasks/execute/traceReportRedaction.js.map +1 -0
  268. package/dist/features/tasks/execute/traceReportRenderer.d.ts +4 -0
  269. package/dist/features/tasks/execute/traceReportRenderer.d.ts.map +1 -0
  270. package/dist/features/tasks/execute/traceReportRenderer.js +225 -0
  271. package/dist/features/tasks/execute/traceReportRenderer.js.map +1 -0
  272. package/dist/features/tasks/execute/traceReportTypes.d.ts +45 -0
  273. package/dist/features/tasks/execute/traceReportTypes.d.ts.map +1 -0
  274. package/dist/features/tasks/execute/traceReportTypes.js +2 -0
  275. package/dist/features/tasks/execute/traceReportTypes.js.map +1 -0
  276. package/dist/features/tasks/execute/traceReportWriter.d.ts +24 -0
  277. package/dist/features/tasks/execute/traceReportWriter.d.ts.map +1 -0
  278. package/dist/features/tasks/execute/traceReportWriter.js +42 -0
  279. package/dist/features/tasks/execute/traceReportWriter.js.map +1 -0
  280. package/dist/features/tasks/list/index.d.ts.map +1 -1
  281. package/dist/features/tasks/list/index.js +49 -0
  282. package/dist/features/tasks/list/index.js.map +1 -1
  283. package/dist/features/tasks/list/prepareTaskForExecution.d.ts +3 -0
  284. package/dist/features/tasks/list/prepareTaskForExecution.d.ts.map +1 -0
  285. package/dist/features/tasks/list/prepareTaskForExecution.js +13 -0
  286. package/dist/features/tasks/list/prepareTaskForExecution.js.map +1 -0
  287. package/dist/features/tasks/list/requeueHelpers.d.ts +1 -0
  288. package/dist/features/tasks/list/requeueHelpers.d.ts.map +1 -1
  289. package/dist/features/tasks/list/requeueHelpers.js +25 -0
  290. package/dist/features/tasks/list/requeueHelpers.js.map +1 -1
  291. package/dist/features/tasks/list/taskInstructionActions.d.ts.map +1 -1
  292. package/dist/features/tasks/list/taskInstructionActions.js +12 -8
  293. package/dist/features/tasks/list/taskInstructionActions.js.map +1 -1
  294. package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
  295. package/dist/features/tasks/list/taskRetryActions.js +8 -35
  296. package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
  297. package/dist/features/tasks/list/taskStatusLabel.d.ts.map +1 -1
  298. package/dist/features/tasks/list/taskStatusLabel.js +1 -0
  299. package/dist/features/tasks/list/taskStatusLabel.js.map +1 -1
  300. package/dist/features/tasks/watch/index.d.ts.map +1 -1
  301. package/dist/features/tasks/watch/index.js +1 -4
  302. package/dist/features/tasks/watch/index.js.map +1 -1
  303. package/dist/index.d.ts +1 -1
  304. package/dist/index.d.ts.map +1 -1
  305. package/dist/index.js +1 -1
  306. package/dist/index.js.map +1 -1
  307. package/dist/infra/claude/client.d.ts.map +1 -1
  308. package/dist/infra/claude/client.js +3 -0
  309. package/dist/infra/claude/client.js.map +1 -1
  310. package/dist/infra/claude/executor.d.ts.map +1 -1
  311. package/dist/infra/claude/executor.js +52 -1
  312. package/dist/infra/claude/executor.js.map +1 -1
  313. package/dist/infra/claude/types.d.ts +3 -0
  314. package/dist/infra/claude/types.d.ts.map +1 -1
  315. package/dist/infra/codex/client.d.ts.map +1 -1
  316. package/dist/infra/codex/client.js +48 -1
  317. package/dist/infra/codex/client.js.map +1 -1
  318. package/dist/infra/config/configNormalizers.d.ts +16 -6
  319. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  320. package/dist/infra/config/configNormalizers.js +74 -5
  321. package/dist/infra/config/configNormalizers.js.map +1 -1
  322. package/dist/infra/config/env/config-env-overrides.d.ts.map +1 -1
  323. package/dist/infra/config/env/config-env-overrides.js +36 -19
  324. package/dist/infra/config/env/config-env-overrides.js.map +1 -1
  325. package/dist/infra/config/global/cliPathValidator.d.ts +2 -0
  326. package/dist/infra/config/global/cliPathValidator.d.ts.map +1 -0
  327. package/dist/infra/config/global/cliPathValidator.js +38 -0
  328. package/dist/infra/config/global/cliPathValidator.js.map +1 -0
  329. package/dist/infra/config/global/globalConfig.d.ts +6 -87
  330. package/dist/infra/config/global/globalConfig.d.ts.map +1 -1
  331. package/dist/infra/config/global/globalConfig.js +10 -569
  332. package/dist/infra/config/global/globalConfig.js.map +1 -1
  333. package/dist/infra/config/global/globalConfigAccessors.d.ts +7 -0
  334. package/dist/infra/config/global/globalConfigAccessors.d.ts.map +1 -0
  335. package/dist/infra/config/global/globalConfigAccessors.js +25 -0
  336. package/dist/infra/config/global/globalConfigAccessors.js.map +1 -0
  337. package/dist/infra/config/global/globalConfigCore.d.ts +20 -0
  338. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -0
  339. package/dist/infra/config/global/globalConfigCore.js +153 -0
  340. package/dist/infra/config/global/globalConfigCore.js.map +1 -0
  341. package/dist/infra/config/global/globalConfigLegacyMigration.d.ts +2 -0
  342. package/dist/infra/config/global/globalConfigLegacyMigration.d.ts.map +1 -0
  343. package/dist/infra/config/global/globalConfigLegacyMigration.js +19 -0
  344. package/dist/infra/config/global/globalConfigLegacyMigration.js.map +1 -0
  345. package/dist/infra/config/global/globalConfigResolvers.d.ts +10 -0
  346. package/dist/infra/config/global/globalConfigResolvers.d.ts.map +1 -0
  347. package/dist/infra/config/global/globalConfigResolvers.js +82 -0
  348. package/dist/infra/config/global/globalConfigResolvers.js.map +1 -0
  349. package/dist/infra/config/global/globalConfigSerializer.d.ts +3 -0
  350. package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -0
  351. package/dist/infra/config/global/globalConfigSerializer.js +147 -0
  352. package/dist/infra/config/global/globalConfigSerializer.js.map +1 -0
  353. package/dist/infra/config/global/globalMigratedProjectLocalFallback.d.ts +6 -0
  354. package/dist/infra/config/global/globalMigratedProjectLocalFallback.d.ts.map +1 -0
  355. package/dist/infra/config/global/globalMigratedProjectLocalFallback.js +34 -0
  356. package/dist/infra/config/global/globalMigratedProjectLocalFallback.js.map +1 -0
  357. package/dist/infra/config/global/index.d.ts +1 -1
  358. package/dist/infra/config/global/index.d.ts.map +1 -1
  359. package/dist/infra/config/global/index.js +1 -1
  360. package/dist/infra/config/global/index.js.map +1 -1
  361. package/dist/infra/config/loaders/pieceParser.d.ts.map +1 -1
  362. package/dist/infra/config/loaders/pieceParser.js +2 -11
  363. package/dist/infra/config/loaders/pieceParser.js.map +1 -1
  364. package/dist/infra/config/loaders/pieceResolver.js +2 -2
  365. package/dist/infra/config/loaders/pieceResolver.js.map +1 -1
  366. package/dist/infra/config/migratedProjectLocalDefaults.d.ts +4 -0
  367. package/dist/infra/config/migratedProjectLocalDefaults.d.ts.map +1 -0
  368. package/dist/infra/config/migratedProjectLocalDefaults.js +11 -0
  369. package/dist/infra/config/migratedProjectLocalDefaults.js.map +1 -0
  370. package/dist/infra/config/migratedProjectLocalKeys.d.ts +42 -0
  371. package/dist/infra/config/migratedProjectLocalKeys.d.ts.map +1 -0
  372. package/dist/infra/config/migratedProjectLocalKeys.js +17 -0
  373. package/dist/infra/config/migratedProjectLocalKeys.js.map +1 -0
  374. package/dist/infra/config/paths.d.ts +1 -1
  375. package/dist/infra/config/paths.d.ts.map +1 -1
  376. package/dist/infra/config/paths.js +7 -5
  377. package/dist/infra/config/paths.js.map +1 -1
  378. package/dist/infra/config/project/index.d.ts +1 -1
  379. package/dist/infra/config/project/index.d.ts.map +1 -1
  380. package/dist/infra/config/project/index.js +1 -1
  381. package/dist/infra/config/project/index.js.map +1 -1
  382. package/dist/infra/config/project/projectConfig.d.ts +0 -12
  383. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  384. package/dist/infra/config/project/projectConfig.js +109 -110
  385. package/dist/infra/config/project/projectConfig.js.map +1 -1
  386. package/dist/infra/config/project/projectConfigPaths.d.ts +3 -0
  387. package/dist/infra/config/project/projectConfigPaths.d.ts.map +1 -0
  388. package/dist/infra/config/project/projectConfigPaths.js +8 -0
  389. package/dist/infra/config/project/projectConfigPaths.js.map +1 -0
  390. package/dist/infra/config/project/projectConfigTransforms.d.ts +7 -0
  391. package/dist/infra/config/project/projectConfigTransforms.d.ts.map +1 -0
  392. package/dist/infra/config/project/projectConfigTransforms.js +72 -0
  393. package/dist/infra/config/project/projectConfigTransforms.js.map +1 -0
  394. package/dist/infra/config/project/resolvedSettings.js +2 -2
  395. package/dist/infra/config/project/resolvedSettings.js.map +1 -1
  396. package/dist/infra/config/providerModelCompatibility.d.ts +7 -0
  397. package/dist/infra/config/providerModelCompatibility.d.ts.map +1 -0
  398. package/dist/infra/config/providerModelCompatibility.js +20 -0
  399. package/dist/infra/config/providerModelCompatibility.js.map +1 -0
  400. package/dist/infra/config/providerOptions.d.ts +1 -0
  401. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  402. package/dist/infra/config/providerOptions.js +18 -7
  403. package/dist/infra/config/providerOptions.js.map +1 -1
  404. package/dist/infra/config/resolveConfigValue.d.ts +1 -0
  405. package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
  406. package/dist/infra/config/resolveConfigValue.js +39 -8
  407. package/dist/infra/config/resolveConfigValue.js.map +1 -1
  408. package/dist/infra/config/resolvedConfig.d.ts +9 -2
  409. package/dist/infra/config/resolvedConfig.d.ts.map +1 -1
  410. package/dist/infra/config/types.d.ts +18 -12
  411. package/dist/infra/config/types.d.ts.map +1 -1
  412. package/dist/infra/fs/index.d.ts +1 -1
  413. package/dist/infra/fs/index.d.ts.map +1 -1
  414. package/dist/infra/fs/index.js.map +1 -1
  415. package/dist/infra/fs/session.d.ts +1 -1
  416. package/dist/infra/fs/session.d.ts.map +1 -1
  417. package/dist/infra/fs/session.js.map +1 -1
  418. package/dist/infra/providers/claude.d.ts.map +1 -1
  419. package/dist/infra/providers/claude.js +2 -3
  420. package/dist/infra/providers/claude.js.map +1 -1
  421. package/dist/infra/providers/codex.d.ts.map +1 -1
  422. package/dist/infra/providers/codex.js +2 -3
  423. package/dist/infra/providers/codex.js.map +1 -1
  424. package/dist/infra/providers/copilot.d.ts.map +1 -1
  425. package/dist/infra/providers/copilot.js +2 -3
  426. package/dist/infra/providers/copilot.js.map +1 -1
  427. package/dist/infra/providers/cursor.d.ts.map +1 -1
  428. package/dist/infra/providers/cursor.js +2 -3
  429. package/dist/infra/providers/cursor.js.map +1 -1
  430. package/dist/infra/task/mapper.d.ts +1 -0
  431. package/dist/infra/task/mapper.d.ts.map +1 -1
  432. package/dist/infra/task/mapper.js +9 -0
  433. package/dist/infra/task/mapper.js.map +1 -1
  434. package/dist/infra/task/runner.d.ts +2 -1
  435. package/dist/infra/task/runner.d.ts.map +1 -1
  436. package/dist/infra/task/runner.js +3 -0
  437. package/dist/infra/task/runner.js.map +1 -1
  438. package/dist/infra/task/schema.d.ts +3 -0
  439. package/dist/infra/task/schema.d.ts.map +1 -1
  440. package/dist/infra/task/schema.js +24 -1
  441. package/dist/infra/task/schema.js.map +1 -1
  442. package/dist/infra/task/taskDeletionService.d.ts +1 -1
  443. package/dist/infra/task/taskDeletionService.d.ts.map +1 -1
  444. package/dist/infra/task/taskDeletionService.js.map +1 -1
  445. package/dist/infra/task/taskLifecycleService.d.ts +1 -0
  446. package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
  447. package/dist/infra/task/taskLifecycleService.js +27 -0
  448. package/dist/infra/task/taskLifecycleService.js.map +1 -1
  449. package/dist/infra/task/types.d.ts +1 -1
  450. package/dist/infra/task/types.d.ts.map +1 -1
  451. package/dist/shared/i18n/labels_en.yaml +1 -3
  452. package/dist/shared/i18n/labels_ja.yaml +1 -3
  453. package/dist/shared/utils/debug.d.ts +3 -0
  454. package/dist/shared/utils/debug.d.ts.map +1 -1
  455. package/dist/shared/utils/debug.js +7 -0
  456. package/dist/shared/utils/debug.js.map +1 -1
  457. package/dist/shared/utils/phaseExecutionId.d.ts +9 -0
  458. package/dist/shared/utils/phaseExecutionId.d.ts.map +1 -0
  459. package/dist/shared/utils/phaseExecutionId.js +41 -0
  460. package/dist/shared/utils/phaseExecutionId.js.map +1 -0
  461. package/dist/shared/utils/providerEventLogger.d.ts +2 -21
  462. package/dist/shared/utils/providerEventLogger.d.ts.map +1 -1
  463. package/dist/shared/utils/providerEventLogger.js +1 -86
  464. package/dist/shared/utils/providerEventLogger.js.map +1 -1
  465. package/dist/shared/utils/types.d.ts +24 -1
  466. package/dist/shared/utils/types.d.ts.map +1 -1
  467. package/dist/shared/utils/usageEventLogger.d.ts +3 -0
  468. package/dist/shared/utils/usageEventLogger.d.ts.map +1 -0
  469. package/dist/shared/utils/usageEventLogger.js +2 -0
  470. package/dist/shared/utils/usageEventLogger.js.map +1 -0
  471. package/package.json +1 -1
  472. package/dist/features/config/switchPiece.d.ts +0 -9
  473. package/dist/features/config/switchPiece.d.ts.map +0 -1
  474. package/dist/features/config/switchPiece.js +0 -33
  475. package/dist/features/config/switchPiece.js.map +0 -1
package/README.md CHANGED
@@ -142,7 +142,6 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas
142
142
  | `takt run` | Execute all pending tasks |
143
143
  | `takt list` | Manage task branches (merge, retry, instruct, delete) |
144
144
  | `takt #N` | Execute GitHub Issue as task |
145
- | `takt switch` | Switch active piece |
146
145
  | `takt eject` | Copy builtin pieces/facets for customization |
147
146
  | `takt repertoire add` | Install a repertoire package from GitHub |
148
147
 
@@ -4,22 +4,15 @@
4
4
  # =====================================
5
5
  # General settings (piece-independent)
6
6
  # =====================================
7
+ # Note: this template contains global-only settings for ~/.takt/config.yaml.
7
8
  language: en # UI language: en | ja
8
- log_level: info # Log level: debug | info | warn | error
9
- provider: claude # Default provider: claude | codex | opencode | mock
10
- # model: sonnet # Optional model name passed to provider
11
9
 
12
10
  # Execution control
13
11
  # worktree_dir: ~/takt-worktrees # Base directory for shared clone execution
14
- # auto_pr: false # Auto-create PR after worktree execution
15
- branch_name_strategy: ai # Branch strategy: romaji | ai
16
- concurrency: 2 # Concurrent task execution for takt run (1-10)
17
- # task_poll_interval_ms: 500 # Polling interval in ms during takt run (100-5000)
18
12
  # prevent_sleep: false # Prevent macOS idle sleep while running
13
+ # auto_fetch: false # Fetch before clone to keep shared clones up-to-date
19
14
 
20
15
  # Output / notifications
21
- # minimal_output: false # Minimized output for CI logs
22
- # verbose: false # Verbose output mode
23
16
  # notification_sound: true # Master switch for sounds
24
17
  # notification_sound_events: # Per-event sound toggle (unset means true)
25
18
  # iteration_limit: true
@@ -27,74 +20,28 @@ concurrency: 2 # Concurrent task execution for takt run (1-10)
27
20
  # piece_abort: true
28
21
  # run_complete: true
29
22
  # run_abort: true
30
- # observability:
31
- # provider_events: false # Persist provider stream events
32
- # analytics:
33
- # enabled: true # Enable analytics metrics collection
34
- # events_path: ~/.takt/analytics/events # Analytics event directory
35
- # retention_days: 30 # Analytics event retention (days)
23
+ # verbose: false # Shortcut: enable trace/debug and set logging.level=debug
24
+ # logging:
25
+ # level: info # Log level for console and file output
26
+ # trace: true # Generate human-readable execution trace report (trace.md)
27
+ # debug: false # Enable debug.log + prompts.jsonl
28
+ # provider_events: false # Persist provider stream events
36
29
 
37
30
  # Credentials (environment variables take priority)
38
31
  # anthropic_api_key: "sk-ant-..." # Claude API key
39
32
  # openai_api_key: "sk-..." # Codex/OpenAI API key
33
+ # gemini_api_key: "..." # Gemini API key
34
+ # google_api_key: "..." # Google API key
35
+ # groq_api_key: "..." # Groq API key
36
+ # openrouter_api_key: "..." # OpenRouter API key
40
37
  # opencode_api_key: "..." # OpenCode API key
41
38
  # codex_cli_path: "/absolute/path/to/codex" # Absolute path to Codex CLI
42
39
 
43
- # Pipeline
44
- # pipeline:
45
- # default_branch_prefix: "takt/" # Prefix for pipeline-created branches
46
- # commit_message_template: "feat: {title} (#{issue})" # Commit template
47
- # pr_body_template: | # PR body template
48
- # ## Summary
49
- # {issue_body}
50
- # Closes #{issue}
51
-
52
40
  # Misc
53
41
  # bookmarks_file: ~/.takt/preferences/bookmarks.yaml # Bookmark file location
54
42
 
55
- # =====================================
56
- # Piece-related settings (global defaults)
57
- # =====================================
58
- # 1) Route provider/model per persona
59
- # persona_providers:
60
- # coder:
61
- # provider: codex # Run coder persona on Codex
62
- # model: o3-mini # Use o3-mini model (optional)
63
- # reviewer:
64
- # provider: claude # Run reviewer persona on Claude
65
-
66
- # 2) Provider options
67
- # Priority (for piece-capable keys such as provider/model/provider_options):
68
- # global < piece < project < env
69
- # provider_options:
70
- # codex:
71
- # network_access: true # Allow network access for Codex
72
- # opencode:
73
- # network_access: true # Allow network access for OpenCode
74
- # claude:
75
- # sandbox:
76
- # allow_unsandboxed_commands: false # true allows unsandboxed execution for listed commands
77
- # excluded_commands:
78
- # - "npm publish" # Commands excluded from sandbox
79
-
80
- # 3) Movement permission policy
81
- # provider_profiles:
82
- # codex:
83
- # default_permission_mode: full # Base permission: readonly | edit | full
84
- # movement_permission_overrides:
85
- # ai_review: readonly # Per-movement override
86
- # claude:
87
- # default_permission_mode: edit
88
-
89
- # 4) Runtime preparation before execution (recommended: enabled)
90
- runtime:
91
- prepare:
92
- - gradle # Prepare Gradle cache/env under .runtime
93
- - node # Prepare npm cache/env under .runtime
94
-
95
- # 5) Piece list / categories
43
+ # Piece list / categories
96
44
  # enable_builtin_pieces: true # Enable built-in pieces from builtins/{lang}/pieces
97
45
  # disabled_builtins:
98
46
  # - magi # Built-in piece names to disable
99
47
  # piece_categories_file: ~/.takt/preferences/piece-categories.yaml # Category definition file
100
- # interactive_preview_movements: 3 # Preview movement count in interactive mode (0-10)
@@ -1,10 +1,16 @@
1
- Address the reviewer's feedback.
2
- Use reports in the Report Directory shown in the Piece Context and fix the issues raised by the reviewer.
3
- Use files in the Report Directory as primary evidence. If additional context is needed, you may consult Previous Response and conversation history as secondary sources (Previous Response may be unavailable). If information conflicts, prioritize reports in the Report Directory and actual file contents.
1
+ Use reports in the Report Directory and fix the issues raised by the reviewer.
4
2
 
5
- **Important**: After fixing, run both build and tests.
6
- - Build verification is mandatory. Run the build (type check) and verify there are no type errors
7
- - Running tests is mandatory. After build succeeds, always run tests and verify results
3
+ **Report reference policy:**
4
+ - Use the latest review reports in the Report Directory as primary evidence.
5
+ - Past iteration reports are saved as `{filename}.{timestamp}` in the same directory (e.g., `architect-review.md.20260304T123456Z`). For each report, run Glob with a `{report-name}.*` pattern, read up to 2 files in descending timestamp order, and understand persists / reopened trends before starting fixes.
6
+
7
+ **Completion criteria (all must be satisfied):**
8
+ - All findings in this iteration (new / reopened) have been fixed
9
+ - Potential occurrences of the same `family_tag` have been fixed simultaneously (no partial fixes that cause recurrence)
10
+ - At least one regression test per `family_tag` has been added (mandatory for config-contract and boundary-check findings)
11
+ - Findings with the same `family_tag` from multiple reviewers have been merged and addressed as one fix
12
+
13
+ **Important**: After fixing, run the build (type check) and tests.
8
14
 
9
15
  **Required output (include headings)**
10
16
  ## Work results
@@ -15,5 +21,11 @@ Use files in the Report Directory as primary evidence. If additional context is
15
21
  - {Build execution results}
16
22
  ## Test results
17
23
  - {Test command executed and results}
24
+ ## Convergence gate
25
+ | Metric | Count |
26
+ |--------|-------|
27
+ | new (fixed in this iteration) | {N} |
28
+ | reopened (recurrence fixed) | {N} |
29
+ | persists (carried over, not addressed this iteration) | {N} |
18
30
  ## Evidence
19
31
  - {List key points from files checked/searches/diffs/logs}
@@ -0,0 +1,9 @@
1
+ The reviewers → fix loop has repeated {cycle_count} times.
2
+
3
+ Review the latest review reports in the Report Directory and determine
4
+ whether this loop is healthy (converging) or unproductive (diverging or oscillating).
5
+
6
+ **Judgment criteria:**
7
+ - Is the number of new / reopened findings decreasing each cycle?
8
+ - Are the same family_tag findings not repeating (is persists not growing)?
9
+ - Are fixes actually being applied to the code?
@@ -12,6 +12,12 @@ Do not review AI-specific issues (already covered by the ai_review movement).
12
12
  - Call chain verification
13
13
  - Scattered hardcoding of contract strings (file names, config key names)
14
14
 
15
+
16
+ **Design decisions reference:**
17
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
18
+ - Do not flag intentionally documented decisions as FP
19
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
20
+
15
21
  **Previous finding tracking (required):**
16
22
  - First, extract open findings from "Previous Response"
17
23
  - Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
@@ -11,6 +11,12 @@ AI-specific issue review is not needed (already covered by the ai_review movemen
11
11
  **Note**: If this project does not use the CQRS+ES pattern,
12
12
  review from a general domain design perspective instead.
13
13
 
14
+
15
+ **Design decisions reference:**
16
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
17
+ - Do not flag intentionally documented decisions as FP
18
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
19
+
14
20
  ## Judgment Procedure
15
21
 
16
22
  1. Review the change diff and detect issues based on the CQRS and Event Sourcing criteria above
@@ -11,6 +11,12 @@ Review the changes from a frontend development perspective.
11
11
  **Note**: If this project does not include a frontend,
12
12
  proceed as no issues found.
13
13
 
14
+
15
+ **Design decisions reference:**
16
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
17
+ - Do not flag intentionally documented decisions as FP
18
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
19
+
14
20
  ## Judgment Procedure
15
21
 
16
22
  1. Review the change diff and detect issues based on the frontend development criteria above
@@ -7,6 +7,12 @@ Review the changes from a quality assurance perspective.
7
7
  - Logging and monitoring
8
8
  - Maintainability
9
9
 
10
+
11
+ **Design decisions reference:**
12
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
13
+ - Do not flag intentionally documented decisions as FP
14
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
15
+
10
16
  **Previous finding tracking (required):**
11
17
  - First, extract open findings from "Previous Response"
12
18
  - Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
@@ -6,6 +6,12 @@ Review the changes from a requirements fulfillment perspective.
6
6
  - Whether changes outside the scope (scope creep) have crept in
7
7
  - Whether there are any partial or missing implementations
8
8
 
9
+
10
+ **Design decisions reference:**
11
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
12
+ - Do not flag intentionally documented decisions as FP
13
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
14
+
9
15
  **Previous finding tracking (required):**
10
16
  - First, extract open findings from "Previous Response"
11
17
  - Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
@@ -4,6 +4,12 @@ Review the changes from a security perspective. Check for the following vulnerab
4
4
  - Data exposure risks
5
5
  - Cryptographic weaknesses
6
6
 
7
+
8
+ **Design decisions reference:**
9
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
10
+ - Do not flag intentionally documented decisions as FP
11
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
12
+
7
13
  ## Judgment Procedure
8
14
 
9
15
  1. Review the change diff and detect issues based on the security criteria above
@@ -11,6 +11,12 @@ Do not review AI-specific issues (already covered by the ai_review movement).
11
11
  - Cost trade-off documentation
12
12
  - Unused variables / outputs / data sources
13
13
 
14
+
15
+ **Design decisions reference:**
16
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
17
+ - Do not flag intentionally documented decisions as FP
18
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
19
+
14
20
  **Previous finding tracking (required):**
15
21
  - First, extract open findings from "Previous Response"
16
22
  - Assign `finding_id` to each finding and classify current status as `new / persists / resolved`
@@ -7,6 +7,12 @@ Review the changes from a test quality perspective.
7
7
  - Completeness (unnecessary tests, missing cases)
8
8
  - Appropriateness of mocks and fixtures
9
9
 
10
+
11
+ **Design decisions reference:**
12
+ Review {report:coder-decisions.md} to understand the recorded design decisions.
13
+ - Do not flag intentionally documented decisions as FP
14
+ - However, also evaluate whether the design decisions themselves are sound, and flag any problems
15
+
10
16
  ## Judgment Procedure
11
17
 
12
18
  1. Cross-reference the test plan/test scope reports in the Report Directory with the implemented tests
@@ -15,22 +15,27 @@
15
15
  | Scope | ✅ | - |
16
16
 
17
17
  ## Current Iteration Findings (new)
18
- | # | finding_id | Category | Location | Issue | Fix Suggestion |
19
- |---|------------|----------|----------|-------|----------------|
20
- | 1 | AI-NEW-src-file-L23 | Hallucinated API | `src/file.ts:23` | Non-existent method | Replace with existing API |
18
+ | # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
19
+ |---|------------|------------|----------|----------|-------|----------------|
20
+ | 1 | AI-NEW-src-file-L23 | hallucination | Hallucinated API | `src/file.ts:23` | Non-existent method | Replace with existing API |
21
21
 
22
22
  ## Carry-over Findings (persists)
23
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
24
- |---|------------|-------------------|------------------|-------|----------------|
25
- | 1 | AI-PERSIST-src-file-L42 | `src/file.ts:42` | `src/file.ts:42` | Still unresolved | Apply prior fix plan |
23
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
24
+ |---|------------|------------|-------------------|------------------|-------|----------------|
25
+ | 1 | AI-PERSIST-src-file-L42 | hallucination | `src/file.ts:42` | `src/file.ts:42` | Still unresolved | Apply prior fix plan |
26
26
 
27
27
  ## Resolved Findings (resolved)
28
28
  | finding_id | Resolution Evidence |
29
29
  |------------|---------------------|
30
30
  | AI-RESOLVED-src-file-L10 | `src/file.ts:10` no longer contains the issue |
31
31
 
32
+ ## Reopened Findings (reopened)
33
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
34
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
35
+ | 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
+
32
37
  ## Rejection Gate
33
- - REJECT is valid only when at least one finding exists in `new` or `persists`
38
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
34
39
  - Findings without `finding_id` are invalid
35
40
  ```
36
41
 
@@ -15,24 +15,29 @@
15
15
  - [x] Call chain verification
16
16
 
17
17
  ## Current Iteration Findings (new)
18
- | # | finding_id | Scope | Location | Issue | Fix Suggestion |
19
- |---|------------|-------|----------|-------|----------------|
20
- | 1 | ARCH-NEW-src-file-L42 | In-scope | `src/file.ts:42` | Issue description | Fix approach |
18
+ | # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
19
+ |---|------------|------------|-------|----------|-------|----------------|
20
+ | 1 | ARCH-NEW-src-file-L42 | design-violation | In-scope | `src/file.ts:42` | Issue description | Fix approach |
21
21
 
22
22
  Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
23
23
 
24
24
  ## Carry-over Findings (persists)
25
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
26
- |---|------------|-------------------|------------------|-------|----------------|
27
- | 1 | ARCH-PERSIST-src-file-L77 | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
25
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
26
+ |---|------------|------------|-------------------|------------------|-------|----------------|
27
+ | 1 | ARCH-PERSIST-src-file-L77 | design-violation | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
28
28
 
29
29
  ## Resolved Findings (resolved)
30
30
  | finding_id | Resolution Evidence |
31
31
  |------------|---------------------|
32
32
  | ARCH-RESOLVED-src-file-L10 | `src/file.ts:10` now satisfies the rule |
33
33
 
34
+ ## Reopened Findings (reopened)
35
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
36
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
37
+ | 1 | ARCH-REOPENED-src-file-L55 | design-violation | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
38
+
34
39
  ## Rejection Gate
35
- - REJECT is valid only when at least one finding exists in `new` or `persists`
40
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
36
41
  - Findings without `finding_id` are invalid
37
42
  ```
38
43
 
@@ -15,13 +15,33 @@
15
15
  | Projections | ✅ | - |
16
16
  | Eventual consistency | ✅ | - |
17
17
 
18
- ## Issues (if REJECT)
19
- | # | Scope | Location | Issue | Fix Suggestion |
20
- |---|-------|----------|-------|----------------|
21
- | 1 | In-scope | `src/file.ts:42` | Issue description | Fix approach |
18
+ ## Current Iteration Findings (new)
19
+ | # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
20
+ |---|------------|------------|-------|----------|-------|----------------|
21
+ | 1 | CQRS-NEW-src-file-L42 | cqrs-violation | In-scope | `src/file.ts:42` | Issue description | Fix approach |
22
22
 
23
23
  Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
24
24
 
25
- ## Existing Issues (reference, non-blocking)
26
- - {Record of existing issues unrelated to the current change}
25
+ ## Carry-over Findings (persists)
26
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
27
+ |---|------------|------------|-------------------|------------------|-------|----------------|
28
+ | 1 | CQRS-PERSIST-src-file-L77 | cqrs-violation | `src/file.ts:77` | `src/file.ts:77` | Still unresolved | Apply prior fix plan |
29
+
30
+ ## Resolved Findings (resolved)
31
+ | finding_id | Resolution Evidence |
32
+ |------------|---------------------|
33
+ | CQRS-RESOLVED-src-file-L10 | `src/file.ts:10` now satisfies the rule |
34
+
35
+ ## Reopened Findings (reopened)
36
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
37
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
38
+ | 1 | CQRS-REOPENED-src-file-L55 | cqrs-violation | `Previously fixed at src/file.ts:10` | `Recurred at src/file.ts:55` | Issue description | Fix approach |
39
+
40
+ ## Rejection Gate
41
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
42
+ - Findings without `finding_id` are invalid
27
43
  ```
44
+
45
+ **Cognitive load reduction rules:**
46
+ - APPROVE → Summary only (5 lines or fewer)
47
+ - REJECT → Include only relevant finding rows (30 lines or fewer)
@@ -15,8 +15,31 @@
15
15
  | Accessibility | ✅ | - |
16
16
  | Type safety | ✅ | - |
17
17
 
18
- ## Issues (if REJECT)
19
- | # | Location | Issue | Fix Suggestion |
20
- |---|----------|-------|----------------|
21
- | 1 | `src/file.tsx:42` | Issue description | Fix approach |
18
+ ## Current Iteration Findings (new)
19
+ | # | finding_id | family_tag | Location | Issue | Fix Suggestion |
20
+ |---|------------|------------|----------|-------|----------------|
21
+ | 1 | FE-NEW-src-file-L42 | component-design | `src/file.tsx:42` | Issue description | Fix approach |
22
+
23
+ ## Carry-over Findings (persists)
24
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
25
+ |---|------------|------------|-------------------|------------------|-------|----------------|
26
+ | 1 | FE-PERSIST-src-file-L77 | component-design | `src/file.tsx:77` | `src/file.tsx:77` | Still unresolved | Apply prior fix plan |
27
+
28
+ ## Resolved Findings (resolved)
29
+ | finding_id | Resolution Evidence |
30
+ |------------|---------------------|
31
+ | FE-RESOLVED-src-file-L10 | `src/file.tsx:10` now satisfies the rule |
32
+
33
+ ## Reopened Findings (reopened)
34
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
35
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
36
+ | 1 | FE-REOPENED-src-file-L55 | component-design | `Previously fixed at src/file.tsx:10` | `Recurred at src/file.tsx:55` | Issue description | Fix approach |
37
+
38
+ ## Rejection Gate
39
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
40
+ - Findings without `finding_id` are invalid
22
41
  ```
42
+
43
+ **Cognitive load reduction rules:**
44
+ - APPROVE → Summary only (5 lines or fewer)
45
+ - REJECT → Include only relevant finding rows (30 lines or fewer)
@@ -16,21 +16,26 @@
16
16
  | Maintainability | ✅ | - |
17
17
 
18
18
  ## Current Iteration Findings (new)
19
- | # | finding_id | Category | Location | Issue | Fix Suggestion |
20
- |---|------------|----------|----------|-------|----------------|
21
- | 1 | QA-NEW-src-test-L42 | Testing | `src/test.ts:42` | Missing negative test | Add failure-path test |
19
+ | # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
20
+ |---|------------|------------|----------|----------|-------|----------------|
21
+ | 1 | QA-NEW-src-test-L42 | test-coverage | Testing | `src/test.ts:42` | Missing negative test | Add failure-path test |
22
22
 
23
23
  ## Carry-over Findings (persists)
24
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
25
- |---|------------|-------------------|------------------|-------|----------------|
26
- | 1 | QA-PERSIST-src-test-L77 | `src/test.ts:77` | `src/test.ts:77` | Still flaky | Stabilize assertion & setup |
24
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
25
+ |---|------------|------------|-------------------|------------------|-------|----------------|
26
+ | 1 | QA-PERSIST-src-test-L77 | test-coverage | `src/test.ts:77` | `src/test.ts:77` | Still flaky | Stabilize assertion & setup |
27
27
 
28
28
  ## Resolved Findings (resolved)
29
29
  | finding_id | Resolution Evidence |
30
30
  |------------|---------------------|
31
31
  | QA-RESOLVED-src-test-L10 | `src/test.ts:10` now covers error path |
32
32
 
33
+ ## Reopened Findings (reopened)
34
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
35
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
36
+ | 1 | QA-REOPENED-src-test-L55 | test-coverage | `Previously fixed at src/test.ts:10` | `Recurred at src/test.ts:55` | Issue description | Fix approach |
37
+
33
38
  ## Rejection Gate
34
- - REJECT is valid only when at least one finding exists in `new` or `persists`
39
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
35
40
  - Findings without `finding_id` are invalid
36
41
  ```
@@ -20,22 +20,27 @@
20
20
  | 1 | {change not in requirements} | `src/file.ts` | Justified/Unnecessary |
21
21
 
22
22
  ## Current Iteration Findings (new)
23
- | # | finding_id | Category | Location | Issue | Fix Suggestion |
24
- |---|------------|----------|----------|-------|----------------|
25
- | 1 | REQ-NEW-src-file-L42 | Unimplemented | `src/file.ts:42` | Issue description | Fix suggestion |
23
+ | # | finding_id | family_tag | Category | Location | Issue | Fix Suggestion |
24
+ |---|------------|------------|----------|----------|-------|----------------|
25
+ | 1 | REQ-NEW-src-file-L42 | req-gap | Unimplemented | `src/file.ts:42` | Issue description | Fix suggestion |
26
26
 
27
27
  ## Carry-over Findings (persists)
28
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
29
- |---|------------|-------------------|------------------|-------|----------------|
30
- | 1 | REQ-PERSIST-src-file-L77 | `file:line` | `file:line` | Unresolved | Fix suggestion |
28
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
29
+ |---|------------|------------|-------------------|------------------|-------|----------------|
30
+ | 1 | REQ-PERSIST-src-file-L77 | req-gap | `file:line` | `file:line` | Unresolved | Fix suggestion |
31
31
 
32
32
  ## Resolved Findings (resolved)
33
33
  | finding_id | Resolution Evidence |
34
34
  |------------|---------------------|
35
35
  | REQ-RESOLVED-src-file-L10 | `file:line` now satisfies the requirement |
36
36
 
37
+ ## Reopened Findings (reopened)
38
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
39
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
40
+ | 1 | REQ-REOPENED-src-file-L55 | req-gap | `Previously fixed at file:line` | `Recurred at file:line` | Issue description | Fix approach |
41
+
37
42
  ## Rejection Gate
38
- - REJECT is valid only when at least one finding exists in `new` or `persists`
43
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
39
44
  - Findings without `finding_id` are invalid
40
45
  ```
41
46
 
@@ -14,25 +14,30 @@
14
14
  | Dependencies | ✅ | - |
15
15
 
16
16
  ## Current Iteration Findings (new)
17
- | # | finding_id | Severity | Type | Location | Issue | Fix Suggestion |
18
- |---|------------|----------|------|----------|-------|----------------|
19
- | 1 | SEC-NEW-src-db-L42 | High | SQLi | `src/db.ts:42` | Raw query string | Use parameterized queries |
17
+ | # | finding_id | family_tag | Severity | Type | Location | Issue | Fix Suggestion |
18
+ |---|------------|------------|----------|------|----------|-------|----------------|
19
+ | 1 | SEC-NEW-src-db-L42 | injection-risk | High | SQLi | `src/db.ts:42` | Raw query string | Use parameterized queries |
20
20
 
21
21
  ## Carry-over Findings (persists)
22
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
23
- |---|------------|-------------------|------------------|-------|----------------|
24
- | 1 | SEC-PERSIST-src-auth-L18 | `src/auth.ts:18` | `src/auth.ts:18` | Weak validation persists | Harden validation |
22
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
23
+ |---|------------|------------|-------------------|------------------|-------|----------------|
24
+ | 1 | SEC-PERSIST-src-auth-L18 | injection-risk | `src/auth.ts:18` | `src/auth.ts:18` | Weak validation persists | Harden validation |
25
25
 
26
26
  ## Resolved Findings (resolved)
27
27
  | finding_id | Resolution Evidence |
28
28
  |------------|---------------------|
29
29
  | SEC-RESOLVED-src-db-L10 | `src/db.ts:10` now uses bound parameters |
30
30
 
31
+ ## Reopened Findings (reopened)
32
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
33
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
34
+ | 1 | SEC-REOPENED-src-auth-L55 | injection-risk | `Previously fixed at src/auth.ts:20` | `Recurred at src/auth.ts:55` | Issue description | Fix approach |
35
+
31
36
  ## Warnings (non-blocking)
32
37
  - {Security recommendations}
33
38
 
34
39
  ## Rejection Gate
35
- - REJECT is valid only when at least one finding exists in `new` or `persists`
40
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
36
41
  - Findings without `finding_id` are invalid
37
42
  ```
38
43
 
@@ -4,39 +4,44 @@
4
4
  ## Result: APPROVE / REJECT
5
5
 
6
6
  ## Summary
7
- {1-2 sentences summarizing the result}
7
+ {Summarize the result in 1-2 sentences}
8
8
 
9
9
  ## Reviewed Aspects
10
10
  - [x] Variable declarations (type, description, sensitive)
11
11
  - [x] Resource naming (name_prefix pattern)
12
- - [x] File organization (one file per concern)
13
- - [x] Security configurations
12
+ - [x] File structure (one concern per file)
13
+ - [x] Security settings
14
14
  - [x] Tag management
15
- - [x] Lifecycle rules
15
+ - [x] lifecycle rules
16
16
  - [x] Cost trade-off documentation
17
17
 
18
- ## New Findings (new)
19
- | # | finding_id | Scope | Location | Issue | Fix Suggestion |
20
- |---|------------|-------|----------|-------|---------------|
21
- | 1 | TF-NEW-file-L42 | In scope | `modules/example/main.tf:42` | Issue description | How to fix |
18
+ ## Current Iteration Findings (new)
19
+ | # | finding_id | family_tag | Scope | Location | Issue | Fix Suggestion |
20
+ |---|------------|------------|-------|----------|-------|----------------|
21
+ | 1 | TF-NEW-file-L42 | tf-convention | In-scope | `modules/example/main.tf:42` | Issue description | Fix approach |
22
22
 
23
- Scope: "In scope" (fixable now) / "Out of scope" (existing issue, non-blocking)
23
+ Scope: "In-scope" (fixable in this change) / "Out-of-scope" (existing issue, non-blocking)
24
24
 
25
- ## Persisting Findings (persists)
26
- | # | finding_id | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
27
- |---|------------|-------------------|------------------|-------|---------------|
28
- | 1 | TF-PERSIST-file-L77 | `file.tf:77` | `file.tf:77` | Unresolved | Apply existing fix plan |
25
+ ## Carry-over Findings (persists)
26
+ | # | finding_id | family_tag | Previous Evidence | Current Evidence | Issue | Fix Suggestion |
27
+ |---|------------|------------|-------------------|------------------|-------|----------------|
28
+ | 1 | TF-PERSIST-file-L77 | tf-convention | `file.tf:77` | `file.tf:77` | Still unresolved | Apply prior fix plan |
29
29
 
30
- ## Resolved
30
+ ## Resolved Findings (resolved)
31
31
  | finding_id | Resolution Evidence |
32
- |------------|-------------------|
33
- | TF-RESOLVED-file-L10 | `file.tf:10` meets conventions |
32
+ |------------|---------------------|
33
+ | TF-RESOLVED-file-L10 | `file.tf:10` now satisfies the convention |
34
34
 
35
- ## REJECT Criteria
36
- - REJECT only if 1+ `new` or `persists` findings exist
35
+ ## Reopened Findings (reopened)
36
+ | # | finding_id | family_tag | Prior Resolution Evidence | Recurrence Evidence | Issue | Fix Suggestion |
37
+ |---|------------|------------|--------------------------|---------------------|-------|----------------|
38
+ | 1 | TF-REOPENED-file-L55 | tf-convention | `Previously fixed at file.tf:10` | `Recurred at file.tf:55` | Issue description | Fix approach |
39
+
40
+ ## Rejection Gate
41
+ - REJECT is valid only when at least one finding exists in `new`, `persists`, or `reopened`
37
42
  - Findings without `finding_id` are invalid
38
43
  ```
39
44
 
40
45
  **Cognitive load reduction rules:**
41
- - APPROVE → Summary only (5 lines or less)
42
- - REJECT → Only relevant findings in table (30 lines or less)
46
+ - APPROVE → Summary only (5 lines or fewer)
47
+ - REJECT → Include only relevant finding rows (30 lines or fewer)