takt 0.47.0 → 0.49.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 (524) hide show
  1. package/README.md +24 -0
  2. package/builtins/en/facets/instructions/exec-loop-monitor.md +15 -0
  3. package/builtins/en/facets/instructions/exec-replan.md +5 -0
  4. package/builtins/en/facets/instructions/exec-review.md +10 -0
  5. package/builtins/en/facets/instructions/exec-worker.md +5 -0
  6. package/builtins/en/facets/instructions/fix-maintenance.md +1 -1
  7. package/builtins/en/facets/instructions/implement-maintenance.md +2 -2
  8. package/builtins/en/facets/instructions/plan-maintenance.md +3 -3
  9. package/builtins/en/facets/instructions/review-coding.md +6 -4
  10. package/builtins/en/facets/instructions/review-test.md +6 -1
  11. package/builtins/en/facets/knowledge/backend.md +2 -0
  12. package/builtins/en/facets/knowledge/cqrs-es.md +12 -0
  13. package/builtins/en/facets/knowledge/e2e-testing.md +13 -0
  14. package/builtins/en/facets/knowledge/existing-system.md +2 -2
  15. package/builtins/en/facets/knowledge/takt.md +27 -0
  16. package/builtins/en/facets/output-contracts/exec-review-result.md +13 -0
  17. package/builtins/en/facets/personas/exec-assistant.md +3 -0
  18. package/builtins/en/facets/personas/exec-worker.md +3 -0
  19. package/builtins/en/facets/policies/existing-system-respect.md +30 -16
  20. package/builtins/en/facets/policies/review.md +2 -0
  21. package/builtins/en/facets/policies/testing.md +41 -0
  22. package/builtins/en/workflow-categories.yaml +1 -0
  23. package/builtins/en/workflows/backend-maintenance.yaml +540 -0
  24. package/builtins/en/workflows/draft.yaml +4 -2
  25. package/builtins/en/workflows/frontend-maintenance.yaml +1 -1
  26. package/builtins/en/workflows/frontend.yaml +1 -1
  27. package/builtins/en/workflows/peer-review-with-fc.yaml +1 -1
  28. package/builtins/en/workflows/peer-review.yaml +1 -1
  29. package/builtins/exec/presets/backend.yaml +31 -0
  30. package/builtins/exec/presets/dual.yaml +34 -0
  31. package/builtins/exec/presets/frontend.yaml +31 -0
  32. package/builtins/exec/presets/research.yaml +45 -0
  33. package/builtins/ja/facets/instructions/exec-loop-monitor.md +15 -0
  34. package/builtins/ja/facets/instructions/exec-replan.md +5 -0
  35. package/builtins/ja/facets/instructions/exec-review.md +10 -0
  36. package/builtins/ja/facets/instructions/exec-worker.md +5 -0
  37. package/builtins/ja/facets/instructions/fix-maintenance.md +1 -1
  38. package/builtins/ja/facets/instructions/implement-maintenance.md +2 -2
  39. package/builtins/ja/facets/instructions/plan-maintenance.md +3 -3
  40. package/builtins/ja/facets/instructions/review-coding.md +6 -4
  41. package/builtins/ja/facets/instructions/review-test.md +6 -1
  42. package/builtins/ja/facets/knowledge/backend.md +2 -0
  43. package/builtins/ja/facets/knowledge/cqrs-es.md +12 -0
  44. package/builtins/ja/facets/knowledge/e2e-testing.md +13 -0
  45. package/builtins/ja/facets/knowledge/existing-system.md +2 -2
  46. package/builtins/ja/facets/knowledge/takt.md +27 -0
  47. package/builtins/ja/facets/output-contracts/exec-review-result.md +13 -0
  48. package/builtins/ja/facets/personas/exec-assistant.md +3 -0
  49. package/builtins/ja/facets/personas/exec-worker.md +3 -0
  50. package/builtins/ja/facets/policies/existing-system-respect.md +30 -16
  51. package/builtins/ja/facets/policies/review.md +3 -0
  52. package/builtins/ja/facets/policies/testing.md +41 -0
  53. package/builtins/ja/workflow-categories.yaml +1 -0
  54. package/builtins/ja/workflows/backend-maintenance.yaml +540 -0
  55. package/builtins/ja/workflows/draft.yaml +4 -2
  56. package/builtins/ja/workflows/frontend-maintenance.yaml +1 -1
  57. package/builtins/ja/workflows/frontend.yaml +1 -1
  58. package/builtins/ja/workflows/peer-review-with-fc.yaml +1 -1
  59. package/builtins/ja/workflows/peer-review.yaml +1 -1
  60. package/builtins/skill/SKILL.md +1 -1
  61. package/builtins/skill/references/engine.md +1 -15
  62. package/builtins/skill-codex/SKILL.md +1 -1
  63. package/builtins/skill-codex/references/engine.md +0 -2
  64. package/dist/agents/decompose-task-usecase.d.ts +3 -2
  65. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  66. package/dist/agents/decompose-task-usecase.js +2 -6
  67. package/dist/agents/decompose-task-usecase.js.map +1 -1
  68. package/dist/agents/runner.d.ts.map +1 -1
  69. package/dist/agents/runner.js +7 -6
  70. package/dist/agents/runner.js.map +1 -1
  71. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts +2 -2
  72. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts.map +1 -1
  73. package/dist/agents/structured-caller/capability-aware-structured-caller.js.map +1 -1
  74. package/dist/agents/structured-caller/contracts.d.ts +2 -2
  75. package/dist/agents/structured-caller/contracts.d.ts.map +1 -1
  76. package/dist/agents/structured-caller/default-structured-caller.d.ts +2 -2
  77. package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -1
  78. package/dist/agents/structured-caller/default-structured-caller.js.map +1 -1
  79. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +2 -2
  80. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  81. package/dist/agents/structured-caller/prompt-based-structured-caller.js +2 -5
  82. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  83. package/dist/agents/structured-caller/shared.d.ts.map +1 -1
  84. package/dist/agents/structured-caller/shared.js +2 -9
  85. package/dist/agents/structured-caller/shared.js.map +1 -1
  86. package/dist/agents/team-leader-structured-output.d.ts +2 -2
  87. package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
  88. package/dist/agents/team-leader-structured-output.js +42 -9
  89. package/dist/agents/team-leader-structured-output.js.map +1 -1
  90. package/dist/app/cli/commands.js +13 -0
  91. package/dist/app/cli/commands.js.map +1 -1
  92. package/dist/commands/repertoire/add.d.ts.map +1 -1
  93. package/dist/commands/repertoire/add.js +2 -3
  94. package/dist/commands/repertoire/add.js.map +1 -1
  95. package/dist/core/models/config-schemas.d.ts +26 -0
  96. package/dist/core/models/config-schemas.d.ts.map +1 -1
  97. package/dist/core/models/part.d.ts +7 -0
  98. package/dist/core/models/part.d.ts.map +1 -1
  99. package/dist/core/models/schema-base.d.ts +10 -0
  100. package/dist/core/models/schema-base.d.ts.map +1 -1
  101. package/dist/core/models/schema-base.js +2 -0
  102. package/dist/core/models/schema-base.js.map +1 -1
  103. package/dist/core/models/workflow-provider-options.d.ts +2 -0
  104. package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
  105. package/dist/core/models/workflow-provider-options.js.map +1 -1
  106. package/dist/core/models/workflow-schemas.d.ts +270 -16
  107. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  108. package/dist/core/models/workflow-schemas.js +39 -3
  109. package/dist/core/models/workflow-schemas.js.map +1 -1
  110. package/dist/core/models/workflow-types.d.ts +8 -0
  111. package/dist/core/models/workflow-types.d.ts.map +1 -1
  112. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.d.ts +2 -2
  113. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.d.ts.map +1 -1
  114. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.js +8 -7
  115. package/dist/core/workflow/engine/LoopMonitorJudgeRunner.js.map +1 -1
  116. package/dist/core/workflow/engine/OptionsBuilder.d.ts +1 -0
  117. package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
  118. package/dist/core/workflow/engine/OptionsBuilder.js +23 -11
  119. package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
  120. package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
  121. package/dist/core/workflow/engine/StepExecutor.js +4 -8
  122. package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
  123. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  124. package/dist/core/workflow/engine/TeamLeaderRunner.js +6 -6
  125. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  126. package/dist/core/workflow/engine/WorkflowEngineSetup.js +2 -2
  127. package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
  128. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
  129. package/dist/core/workflow/engine/WorkflowRunLoop.js +31 -0
  130. package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
  131. package/dist/core/workflow/engine/WorkflowValidator.d.ts.map +1 -1
  132. package/dist/core/workflow/engine/WorkflowValidator.js +17 -7
  133. package/dist/core/workflow/engine/WorkflowValidator.js.map +1 -1
  134. package/dist/core/workflow/engine/engine-provider-options.d.ts +2 -1
  135. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  136. package/dist/core/workflow/engine/engine-provider-options.js +45 -6
  137. package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
  138. package/dist/core/workflow/engine/team-leader-common.d.ts +1 -0
  139. package/dist/core/workflow/engine/team-leader-common.d.ts.map +1 -1
  140. package/dist/core/workflow/engine/team-leader-common.js +13 -1
  141. package/dist/core/workflow/engine/team-leader-common.js.map +1 -1
  142. package/dist/core/workflow/findings/manager-runner.d.ts.map +1 -1
  143. package/dist/core/workflow/findings/manager-runner.js +9 -25
  144. package/dist/core/workflow/findings/manager-runner.js.map +1 -1
  145. package/dist/core/workflow/instruction/InstructionBuilder.js +1 -1
  146. package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
  147. package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -1
  148. package/dist/core/workflow/observability/workflowSpans.js +2 -1
  149. package/dist/core/workflow/observability/workflowSpans.js.map +1 -1
  150. package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -1
  151. package/dist/core/workflow/promotion/promotion-runtime.js +3 -2
  152. package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -1
  153. package/dist/core/workflow/provider-model-compatibility.d.ts +0 -1
  154. package/dist/core/workflow/provider-model-compatibility.d.ts.map +1 -1
  155. package/dist/core/workflow/provider-model-compatibility.js +2 -2
  156. package/dist/core/workflow/provider-model-compatibility.js.map +1 -1
  157. package/dist/core/workflow/provider-resolution.d.ts +4 -6
  158. package/dist/core/workflow/provider-resolution.d.ts.map +1 -1
  159. package/dist/core/workflow/provider-resolution.js +19 -11
  160. package/dist/core/workflow/provider-resolution.js.map +1 -1
  161. package/dist/core/workflow/providerOptionsRedaction.d.ts +4 -0
  162. package/dist/core/workflow/providerOptionsRedaction.d.ts.map +1 -0
  163. package/dist/core/workflow/providerOptionsRedaction.js +18 -0
  164. package/dist/core/workflow/providerOptionsRedaction.js.map +1 -0
  165. package/dist/core/workflow/session-key.d.ts +4 -1
  166. package/dist/core/workflow/session-key.d.ts.map +1 -1
  167. package/dist/core/workflow/session-key.js +5 -2
  168. package/dist/core/workflow/session-key.js.map +1 -1
  169. package/dist/features/catalog/catalogFacets.d.ts +11 -1
  170. package/dist/features/catalog/catalogFacets.d.ts.map +1 -1
  171. package/dist/features/catalog/catalogFacets.js +36 -10
  172. package/dist/features/catalog/catalogFacets.js.map +1 -1
  173. package/dist/features/exec/assistantSession.d.ts +18 -0
  174. package/dist/features/exec/assistantSession.d.ts.map +1 -0
  175. package/dist/features/exec/assistantSession.js +51 -0
  176. package/dist/features/exec/assistantSession.js.map +1 -0
  177. package/dist/features/exec/command.d.ts +9 -0
  178. package/dist/features/exec/command.d.ts.map +1 -0
  179. package/dist/features/exec/command.js +143 -0
  180. package/dist/features/exec/command.js.map +1 -0
  181. package/dist/features/exec/commandAvailability.d.ts +4 -0
  182. package/dist/features/exec/commandAvailability.d.ts.map +1 -0
  183. package/dist/features/exec/commandAvailability.js +10 -0
  184. package/dist/features/exec/commandAvailability.js.map +1 -0
  185. package/dist/features/exec/configOps.d.ts +13 -0
  186. package/dist/features/exec/configOps.d.ts.map +1 -0
  187. package/dist/features/exec/configOps.js +129 -0
  188. package/dist/features/exec/configOps.js.map +1 -0
  189. package/dist/features/exec/configValidation.d.ts +15 -0
  190. package/dist/features/exec/configValidation.d.ts.map +1 -0
  191. package/dist/features/exec/configValidation.js +150 -0
  192. package/dist/features/exec/configValidation.js.map +1 -0
  193. package/dist/features/exec/defaults.d.ts +3 -0
  194. package/dist/features/exec/defaults.d.ts.map +1 -0
  195. package/dist/features/exec/defaults.js +30 -0
  196. package/dist/features/exec/defaults.js.map +1 -0
  197. package/dist/features/exec/facetEditor.d.ts +5 -0
  198. package/dist/features/exec/facetEditor.d.ts.map +1 -0
  199. package/dist/features/exec/facetEditor.js +293 -0
  200. package/dist/features/exec/facetEditor.js.map +1 -0
  201. package/dist/features/exec/index.d.ts +2 -0
  202. package/dist/features/exec/index.d.ts.map +1 -0
  203. package/dist/features/exec/index.js +2 -0
  204. package/dist/features/exec/index.js.map +1 -0
  205. package/dist/features/exec/labels.d.ts +11 -0
  206. package/dist/features/exec/labels.d.ts.map +1 -0
  207. package/dist/features/exec/labels.js +20 -0
  208. package/dist/features/exec/labels.js.map +1 -0
  209. package/dist/features/exec/presetSelection.d.ts +3 -0
  210. package/dist/features/exec/presetSelection.d.ts.map +1 -0
  211. package/dist/features/exec/presetSelection.js +16 -0
  212. package/dist/features/exec/presetSelection.js.map +1 -0
  213. package/dist/features/exec/presetSetup.d.ts +7 -0
  214. package/dist/features/exec/presetSetup.d.ts.map +1 -0
  215. package/dist/features/exec/presetSetup.js +120 -0
  216. package/dist/features/exec/presetSetup.js.map +1 -0
  217. package/dist/features/exec/presetStore.d.ts +25 -0
  218. package/dist/features/exec/presetStore.d.ts.map +1 -0
  219. package/dist/features/exec/presetStore.js +326 -0
  220. package/dist/features/exec/presetStore.js.map +1 -0
  221. package/dist/features/exec/projectLocalFiles.d.ts +9 -0
  222. package/dist/features/exec/projectLocalFiles.d.ts.map +1 -0
  223. package/dist/features/exec/projectLocalFiles.js +111 -0
  224. package/dist/features/exec/projectLocalFiles.js.map +1 -0
  225. package/dist/features/exec/promptUtils.d.ts +8 -0
  226. package/dist/features/exec/promptUtils.d.ts.map +1 -0
  227. package/dist/features/exec/promptUtils.js +32 -0
  228. package/dist/features/exec/promptUtils.js.map +1 -0
  229. package/dist/features/exec/runtimeConfig.d.ts +13 -0
  230. package/dist/features/exec/runtimeConfig.d.ts.map +1 -0
  231. package/dist/features/exec/runtimeConfig.js +59 -0
  232. package/dist/features/exec/runtimeConfig.js.map +1 -0
  233. package/dist/features/exec/setupMenu.d.ts +5 -0
  234. package/dist/features/exec/setupMenu.d.ts.map +1 -0
  235. package/dist/features/exec/setupMenu.js +431 -0
  236. package/dist/features/exec/setupMenu.js.map +1 -0
  237. package/dist/features/exec/types.d.ts +52 -0
  238. package/dist/features/exec/types.d.ts.map +1 -0
  239. package/dist/features/exec/types.js +2 -0
  240. package/dist/features/exec/types.js.map +1 -0
  241. package/dist/features/exec/workflowRunner.d.ts +9 -0
  242. package/dist/features/exec/workflowRunner.d.ts.map +1 -0
  243. package/dist/features/exec/workflowRunner.js +96 -0
  244. package/dist/features/exec/workflowRunner.js.map +1 -0
  245. package/dist/features/exec/workflowTemplate.d.ts +9 -0
  246. package/dist/features/exec/workflowTemplate.d.ts.map +1 -0
  247. package/dist/features/exec/workflowTemplate.js +159 -0
  248. package/dist/features/exec/workflowTemplate.js.map +1 -0
  249. package/dist/features/interactive/aiCaller.d.ts +3 -0
  250. package/dist/features/interactive/aiCaller.d.ts.map +1 -1
  251. package/dist/features/interactive/aiCaller.js +4 -0
  252. package/dist/features/interactive/aiCaller.js.map +1 -1
  253. package/dist/features/interactive/clipboardImage.js +2 -2
  254. package/dist/features/interactive/clipboardImage.js.map +1 -1
  255. package/dist/features/interactive/commandMatcher.d.ts +2 -1
  256. package/dist/features/interactive/commandMatcher.d.ts.map +1 -1
  257. package/dist/features/interactive/commandMatcher.js +13 -2
  258. package/dist/features/interactive/commandMatcher.js.map +1 -1
  259. package/dist/features/interactive/interactive-summary.d.ts.map +1 -1
  260. package/dist/features/interactive/interactive-summary.js +45 -23
  261. package/dist/features/interactive/interactive-summary.js.map +1 -1
  262. package/dist/features/interactive/interactive.js +2 -2
  263. package/dist/features/interactive/interactive.js.map +1 -1
  264. package/dist/features/interactive/promptSections.d.ts.map +1 -1
  265. package/dist/features/interactive/promptSections.js +3 -6
  266. package/dist/features/interactive/promptSections.js.map +1 -1
  267. package/dist/features/interactive/retryMode.d.ts.map +1 -1
  268. package/dist/features/interactive/retryMode.js +3 -3
  269. package/dist/features/interactive/retryMode.js.map +1 -1
  270. package/dist/features/interactive/runSessionReader.d.ts +4 -37
  271. package/dist/features/interactive/runSessionReader.d.ts.map +1 -1
  272. package/dist/features/interactive/runSessionReader.js +130 -49
  273. package/dist/features/interactive/runSessionReader.js.map +1 -1
  274. package/dist/features/interactive/slashCommandRegistry.d.ts +2 -0
  275. package/dist/features/interactive/slashCommandRegistry.d.ts.map +1 -1
  276. package/dist/features/interactive/slashCommandRegistry.js +5 -0
  277. package/dist/features/interactive/slashCommandRegistry.js.map +1 -1
  278. package/dist/features/prompt/preview.d.ts.map +1 -1
  279. package/dist/features/prompt/preview.js +58 -32
  280. package/dist/features/prompt/preview.js.map +1 -1
  281. package/dist/features/tasks/execute/selectAndExecute.d.ts.map +1 -1
  282. package/dist/features/tasks/execute/selectAndExecute.js +6 -2
  283. package/dist/features/tasks/execute/selectAndExecute.js.map +1 -1
  284. package/dist/features/tasks/execute/sessionLoggerRecordFactory.d.ts.map +1 -1
  285. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js +2 -1
  286. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js.map +1 -1
  287. package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
  288. package/dist/features/tasks/execute/taskWorkflowExecution.js +41 -1
  289. package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
  290. package/dist/features/tasks/execute/types.d.ts +8 -0
  291. package/dist/features/tasks/execute/types.d.ts.map +1 -1
  292. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  293. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +4 -0
  294. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  295. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  296. package/dist/features/tasks/execute/workflowExecutionEvents.js +12 -1
  297. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  298. package/dist/features/tasks/list/instructMode.d.ts.map +1 -1
  299. package/dist/features/tasks/list/instructMode.js +3 -3
  300. package/dist/features/tasks/list/instructMode.js.map +1 -1
  301. package/dist/features/tasks/resume/directInstructMode.d.ts.map +1 -1
  302. package/dist/features/tasks/resume/directInstructMode.js +3 -3
  303. package/dist/features/tasks/resume/directInstructMode.js.map +1 -1
  304. package/dist/infra/claude/client.d.ts.map +1 -1
  305. package/dist/infra/claude/client.js +1 -0
  306. package/dist/infra/claude/client.js.map +1 -1
  307. package/dist/infra/claude/mcp-config.d.ts.map +1 -1
  308. package/dist/infra/claude/mcp-config.js +2 -2
  309. package/dist/infra/claude/mcp-config.js.map +1 -1
  310. package/dist/infra/claude/options-builder.d.ts.map +1 -1
  311. package/dist/infra/claude/options-builder.js +3 -0
  312. package/dist/infra/claude/options-builder.js.map +1 -1
  313. package/dist/infra/claude/types.d.ts +4 -0
  314. package/dist/infra/claude/types.d.ts.map +1 -1
  315. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
  316. package/dist/infra/claude-headless/headless-spawn.js +3 -0
  317. package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
  318. package/dist/infra/claude-headless/types.d.ts +2 -0
  319. package/dist/infra/claude-headless/types.d.ts.map +1 -1
  320. package/dist/infra/codex/client.d.ts.map +1 -1
  321. package/dist/infra/codex/client.js +1 -0
  322. package/dist/infra/codex/client.js.map +1 -1
  323. package/dist/infra/codex/types.d.ts +2 -0
  324. package/dist/infra/codex/types.d.ts.map +1 -1
  325. package/dist/infra/config/configNormalizers.d.ts +3 -2
  326. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  327. package/dist/infra/config/configNormalizers.js +26 -13
  328. package/dist/infra/config/configNormalizers.js.map +1 -1
  329. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
  330. package/dist/infra/config/global/globalConfigCore.js +2 -1
  331. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  332. package/dist/infra/config/loaders/resource-resolver.d.ts +3 -33
  333. package/dist/infra/config/loaders/resource-resolver.d.ts.map +1 -1
  334. package/dist/infra/config/loaders/resource-resolver.js +119 -46
  335. package/dist/infra/config/loaders/resource-resolver.js.map +1 -1
  336. package/dist/infra/config/loaders/workflowCallableArgResolver.d.ts.map +1 -1
  337. package/dist/infra/config/loaders/workflowCallableArgResolver.js +15 -7
  338. package/dist/infra/config/loaders/workflowCallableArgResolver.js.map +1 -1
  339. package/dist/infra/config/loaders/workflowDoctor.d.ts.map +1 -1
  340. package/dist/infra/config/loaders/workflowDoctor.js +19 -7
  341. package/dist/infra/config/loaders/workflowDoctor.js.map +1 -1
  342. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts +3 -1
  343. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
  344. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +3 -1
  345. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
  346. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  347. package/dist/infra/config/loaders/workflowParser.js +6 -8
  348. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  349. package/dist/infra/config/loaders/workflowPreview.d.ts +3 -0
  350. package/dist/infra/config/loaders/workflowPreview.d.ts.map +1 -1
  351. package/dist/infra/config/loaders/workflowPreview.js +32 -12
  352. package/dist/infra/config/loaders/workflowPreview.js.map +1 -1
  353. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js +8 -2
  354. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js.map +1 -1
  355. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
  356. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js +32 -1
  357. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
  358. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts +1 -1
  359. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  360. package/dist/infra/config/loaders/workflowStepNormalizer.js +18 -10
  361. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  362. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  363. package/dist/infra/config/project/projectConfig.js +12 -4
  364. package/dist/infra/config/project/projectConfig.js.map +1 -1
  365. package/dist/infra/config/providerOptions.d.ts +12 -5
  366. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  367. package/dist/infra/config/providerOptions.js +112 -10
  368. package/dist/infra/config/providerOptions.js.map +1 -1
  369. package/dist/infra/config/providerOptionsContract.d.ts +4 -3
  370. package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
  371. package/dist/infra/config/providerOptionsContract.js +11 -0
  372. package/dist/infra/config/providerOptionsContract.js.map +1 -1
  373. package/dist/infra/config/providerReference.d.ts +3 -2
  374. package/dist/infra/config/providerReference.d.ts.map +1 -1
  375. package/dist/infra/config/providerReference.js +6 -6
  376. package/dist/infra/config/providerReference.js.map +1 -1
  377. package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
  378. package/dist/infra/config/resolveConfigValue.js +95 -25
  379. package/dist/infra/config/resolveConfigValue.js.map +1 -1
  380. package/dist/infra/config/traced/tracedConfigLoader.d.ts +3 -2
  381. package/dist/infra/config/traced/tracedConfigLoader.d.ts.map +1 -1
  382. package/dist/infra/config/traced/tracedConfigLoader.js +28 -4
  383. package/dist/infra/config/traced/tracedConfigLoader.js.map +1 -1
  384. package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts.map +1 -1
  385. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js +2 -2
  386. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js.map +1 -1
  387. package/dist/infra/copilot/client.d.ts.map +1 -1
  388. package/dist/infra/copilot/client.js +3 -3
  389. package/dist/infra/copilot/client.js.map +1 -1
  390. package/dist/infra/opencode/allowedTools.d.ts +1 -0
  391. package/dist/infra/opencode/allowedTools.d.ts.map +1 -1
  392. package/dist/infra/opencode/allowedTools.js +7 -0
  393. package/dist/infra/opencode/allowedTools.js.map +1 -1
  394. package/dist/infra/opencode/client.d.ts.map +1 -1
  395. package/dist/infra/opencode/client.js +47 -1
  396. package/dist/infra/opencode/client.js.map +1 -1
  397. package/dist/infra/opencode/types.d.ts +1 -0
  398. package/dist/infra/opencode/types.d.ts.map +1 -1
  399. package/dist/infra/opencode/types.js +10 -10
  400. package/dist/infra/opencode/types.js.map +1 -1
  401. package/dist/infra/providers/allowed-tool-edit-policy.d.ts +1 -0
  402. package/dist/infra/providers/allowed-tool-edit-policy.d.ts.map +1 -1
  403. package/dist/infra/providers/allowed-tool-edit-policy.js +35 -1
  404. package/dist/infra/providers/allowed-tool-edit-policy.js.map +1 -1
  405. package/dist/infra/providers/claude-headless.d.ts +1 -1
  406. package/dist/infra/providers/claude-headless.d.ts.map +1 -1
  407. package/dist/infra/providers/claude-headless.js +2 -1
  408. package/dist/infra/providers/claude-headless.js.map +1 -1
  409. package/dist/infra/providers/claude-terminal.d.ts +1 -1
  410. package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
  411. package/dist/infra/providers/claude-terminal.js +1 -1
  412. package/dist/infra/providers/claude-terminal.js.map +1 -1
  413. package/dist/infra/providers/claude.d.ts +1 -1
  414. package/dist/infra/providers/claude.d.ts.map +1 -1
  415. package/dist/infra/providers/claude.js +2 -1
  416. package/dist/infra/providers/claude.js.map +1 -1
  417. package/dist/infra/providers/codex.d.ts +1 -1
  418. package/dist/infra/providers/codex.d.ts.map +1 -1
  419. package/dist/infra/providers/codex.js +2 -1
  420. package/dist/infra/providers/codex.js.map +1 -1
  421. package/dist/infra/providers/copilot.d.ts +1 -1
  422. package/dist/infra/providers/copilot.d.ts.map +1 -1
  423. package/dist/infra/providers/copilot.js +1 -1
  424. package/dist/infra/providers/copilot.js.map +1 -1
  425. package/dist/infra/providers/cursor.d.ts +1 -1
  426. package/dist/infra/providers/cursor.d.ts.map +1 -1
  427. package/dist/infra/providers/cursor.js +1 -1
  428. package/dist/infra/providers/cursor.js.map +1 -1
  429. package/dist/infra/providers/kiro.d.ts +1 -1
  430. package/dist/infra/providers/kiro.d.ts.map +1 -1
  431. package/dist/infra/providers/kiro.js +1 -1
  432. package/dist/infra/providers/kiro.js.map +1 -1
  433. package/dist/infra/providers/mock.d.ts +1 -1
  434. package/dist/infra/providers/mock.d.ts.map +1 -1
  435. package/dist/infra/providers/mock.js +1 -1
  436. package/dist/infra/providers/mock.js.map +1 -1
  437. package/dist/infra/providers/opencode.d.ts +2 -1
  438. package/dist/infra/providers/opencode.d.ts.map +1 -1
  439. package/dist/infra/providers/opencode.js +19 -6
  440. package/dist/infra/providers/opencode.js.map +1 -1
  441. package/dist/infra/providers/types.d.ts +1 -1
  442. package/dist/infra/providers/types.d.ts.map +1 -1
  443. package/dist/infra/task/projectLocalTaktSync.d.ts +1 -0
  444. package/dist/infra/task/projectLocalTaktSync.d.ts.map +1 -1
  445. package/dist/infra/task/projectLocalTaktSync.js +40 -0
  446. package/dist/infra/task/projectLocalTaktSync.js.map +1 -1
  447. package/dist/shared/constants.d.ts +1 -0
  448. package/dist/shared/constants.d.ts.map +1 -1
  449. package/dist/shared/constants.js +1 -0
  450. package/dist/shared/constants.js.map +1 -1
  451. package/dist/shared/i18n/labels_en.yaml +115 -0
  452. package/dist/shared/i18n/labels_ja.yaml +115 -0
  453. package/dist/shared/prompts/en/exec_assistant_clarify.md +14 -0
  454. package/dist/shared/prompts/en/exec_assistant_instruct.md +14 -0
  455. package/dist/shared/prompts/en/exec_assistant_summary.md +12 -0
  456. package/dist/shared/prompts/en/exec_facet_create.md +8 -0
  457. package/dist/shared/prompts/en/exec_facet_edit.md +8 -0
  458. package/dist/shared/prompts/en/finding_manager_instruction.md +28 -0
  459. package/dist/shared/prompts/en/opencode_agent_prompt.md +52 -0
  460. package/dist/shared/prompts/en/opencode_report_agent_prompt.md +8 -0
  461. package/dist/shared/prompts/en/opencode_review_agent_prompt.md +35 -0
  462. package/dist/shared/prompts/en/perform_phase1_message.md +1 -4
  463. package/dist/shared/prompts/en/perform_phase2_message.md +1 -0
  464. package/dist/shared/prompts/en/perform_phase3_message.md +1 -0
  465. package/dist/shared/prompts/en/provider_runtime_system_prompt.md +1 -0
  466. package/dist/shared/prompts/en/score_slug_system_prompt.md +1 -0
  467. package/dist/shared/prompts/en/score_slug_user_prompt.md +1 -0
  468. package/dist/shared/prompts/en/score_summary_system_prompt.md +1 -0
  469. package/dist/shared/prompts/en/source_context_section_guidance.md +6 -0
  470. package/dist/shared/prompts/en/source_context_system_guard.md +8 -0
  471. package/dist/shared/prompts/en/structured_json_schema_instruction.md +12 -0
  472. package/dist/shared/prompts/en/structured_json_step_instruction.md +12 -0
  473. package/dist/shared/prompts/en/sync_conflict_resolver_message.md +1 -0
  474. package/dist/shared/prompts/en/sync_conflict_resolver_system_prompt.md +1 -0
  475. package/dist/shared/prompts/index.d.ts.map +1 -1
  476. package/dist/shared/prompts/index.js +3 -1
  477. package/dist/shared/prompts/index.js.map +1 -1
  478. package/dist/shared/prompts/ja/exec_assistant_clarify.md +14 -0
  479. package/dist/shared/prompts/ja/exec_assistant_instruct.md +14 -0
  480. package/dist/shared/prompts/ja/exec_assistant_summary.md +12 -0
  481. package/dist/shared/prompts/ja/exec_facet_create.md +8 -0
  482. package/dist/shared/prompts/ja/exec_facet_edit.md +8 -0
  483. package/dist/shared/prompts/ja/finding_manager_instruction.md +28 -0
  484. package/dist/shared/prompts/ja/opencode_agent_prompt.md +52 -0
  485. package/dist/shared/prompts/ja/opencode_report_agent_prompt.md +8 -0
  486. package/dist/shared/prompts/ja/opencode_review_agent_prompt.md +35 -0
  487. package/dist/shared/prompts/ja/perform_phase1_message.md +1 -4
  488. package/dist/shared/prompts/ja/perform_phase2_message.md +1 -0
  489. package/dist/shared/prompts/ja/perform_phase3_message.md +1 -0
  490. package/dist/shared/prompts/ja/provider_runtime_system_prompt.md +1 -0
  491. package/dist/shared/prompts/ja/score_slug_system_prompt.md +1 -0
  492. package/dist/shared/prompts/ja/score_slug_user_prompt.md +1 -0
  493. package/dist/shared/prompts/ja/score_summary_system_prompt.md +1 -0
  494. package/dist/shared/prompts/ja/source_context_section_guidance.md +6 -0
  495. package/dist/shared/prompts/ja/source_context_system_guard.md +8 -0
  496. package/dist/shared/prompts/ja/structured_json_schema_instruction.md +12 -0
  497. package/dist/shared/prompts/ja/structured_json_step_instruction.md +12 -0
  498. package/dist/shared/prompts/ja/sync_conflict_resolver_message.md +1 -0
  499. package/dist/shared/prompts/ja/sync_conflict_resolver_system_prompt.md +1 -0
  500. package/dist/shared/team-leader-inspect-tools.d.ts +5 -0
  501. package/dist/shared/team-leader-inspect-tools.d.ts.map +1 -0
  502. package/dist/shared/team-leader-inspect-tools.js +8 -0
  503. package/dist/shared/team-leader-inspect-tools.js.map +1 -0
  504. package/dist/shared/utils/index.d.ts +1 -0
  505. package/dist/shared/utils/index.d.ts.map +1 -1
  506. package/dist/shared/utils/index.js +1 -0
  507. package/dist/shared/utils/index.js.map +1 -1
  508. package/dist/shared/utils/pathBoundary.d.ts +6 -0
  509. package/dist/shared/utils/pathBoundary.d.ts.map +1 -1
  510. package/dist/shared/utils/pathBoundary.js +38 -1
  511. package/dist/shared/utils/pathBoundary.js.map +1 -1
  512. package/dist/shared/utils/tmpdir.d.ts +2 -0
  513. package/dist/shared/utils/tmpdir.d.ts.map +1 -0
  514. package/dist/shared/utils/tmpdir.js +8 -0
  515. package/dist/shared/utils/tmpdir.js.map +1 -0
  516. package/package.json +10 -5
  517. package/builtins/en/provider-options/review-web.yaml +0 -14
  518. package/builtins/ja/provider-options/review-web.yaml +0 -14
  519. package/dist/features/interactive/policyPrompt.d.ts +0 -2
  520. package/dist/features/interactive/policyPrompt.d.ts.map +0 -1
  521. package/dist/features/interactive/policyPrompt.js +0 -18
  522. package/dist/features/interactive/policyPrompt.js.map +0 -1
  523. package/dist/shared/prompts/en/score_interactive_policy.md +0 -83
  524. package/dist/shared/prompts/ja/score_interactive_policy.md +0 -83
package/README.md CHANGED
@@ -112,6 +112,15 @@ Optional:
112
112
  npm install -g takt
113
113
  ```
114
114
 
115
+ With Nix flakes:
116
+
117
+ ```bash
118
+ nix run github:nrslib/takt
119
+ nix profile install github:nrslib/takt
120
+ ```
121
+
122
+ The Nix package installs the TAKT CLI itself. External CLI providers, `git`, and `gh`/`glab` still need to be installed and available on `PATH` or configured separately as described in [Requirements](#requirements).
123
+
115
124
  ### Talk to AI and queue tasks
116
125
 
117
126
  ```
@@ -214,6 +223,8 @@ When the same workflow name exists in multiple locations, TAKT resolves in this
214
223
  | `backend` | Backend development workflow. |
215
224
  | `dual` | Combined frontend + backend workflow. |
216
225
  | `takt-default` | The workflow used to develop TAKT itself. Directly applicable to other CLI tool development. |
226
+ | `frontend-maintenance` | Frontend production maintenance. Strict multi-phase review with loop monitors. |
227
+ | `backend-maintenance` | Backend production maintenance. Strict multi-phase review with dual-supervisor sign-off. |
217
228
  | `*-mini` series | Lightweight variants of each workflow (`default-mini` / `frontend-mini` / `backend-mini` / `dual-mini`). Omits `write_tests`. |
218
229
 
219
230
  See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and personas.
@@ -223,6 +234,7 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and perso
223
234
  | Command | Description |
224
235
  |---------|-------------|
225
236
  | `takt` | Talk to AI, refine requirements, execute or queue tasks |
237
+ | `takt exec` | Start instant Assistant/Worker/Review agent mode without writing workflow YAML |
226
238
  | `takt run` | Execute all pending tasks |
227
239
  | `takt list` | Manage task branches (merge, retry, requeue, force-fail, instruct, delete) |
228
240
  | `takt #N` | Execute GitHub Issue as task |
@@ -233,6 +245,18 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all workflows and perso
233
245
 
234
246
  See the [CLI Reference](./docs/cli-reference.md) for all commands and options.
235
247
 
248
+ ### Instant exec mode
249
+
250
+ `takt exec` starts TAKT's interactive task-entry mode. The Assistant agent clarifies the request, `/go` turns the conversation into a generated workflow, Worker agent(s) implement the task, Review agent(s) review the result, the Replanning agent asks the user for direction when needed, and loop detection prevents repeated unproductive cycles.
251
+
252
+ Exec starts from the previous exec configuration, or the default configuration on first run. Pass a preset name to start from that preset. Use `/setup` during the conversation to edit agents, loop detection thresholds, presets, and referenced instruction/knowledge/policy facets. Builtin/default presets define the agent roles, facets, and loop thresholds only. Provider and model are resolved from normal TAKT configuration when exec mode starts, and the same resolved values are used for the Assistant dialogue, `/setup` display, and workflow generation. An exec config overrides provider/model only when it sets them explicitly. `effort` is emitted only when it is explicitly configured.
253
+
254
+ Exec presets resolve in this order: project `.takt/exec/presets/` → global `$TAKT_CONFIG_DIR/exec/presets/` (default `~/.takt/exec/presets/`) → builtin `builtins/exec/presets/`. Changes made in `/setup` are saved to `$TAKT_CONFIG_DIR/exec.yaml` (default `~/.takt/exec.yaml`) for the next exec session. `/setup` can also save or delete project/global presets, and created facets are stored under `.takt/facets/` or `$TAKT_CONFIG_DIR/facets/` (default `~/.takt/facets/`).
255
+
256
+ When `/go` runs, TAKT generates `.takt/exec/workflow.yaml` and executes it through the normal workflow engine. Inline text after `/go` is treated as an additional note. `/go` without prior conversation or inline task text does not generate the workflow. Use `/cancel` to exit without running.
257
+
258
+ Normal agent steps, parallel sub-steps, and loop detection judges may set `session_key` to share or isolate persona sessions. System steps, workflow_call steps, and parallel parent steps cannot set `session_key`. TAKT builds the runtime key as `session_key` plus the resolved provider, so values must be non-empty strings that do not collide with other generated session routes.
259
+
236
260
  ## Configuration
237
261
 
238
262
  Minimal `~/.takt/config.yaml`:
@@ -0,0 +1,15 @@
1
+ # Exec Loop Monitor Instruction
2
+
3
+ Review whether the repeated exec loop is productive.
4
+
5
+ This loop has repeated {cycle_count} times.
6
+
7
+ Review recent reports in chronological order and choose one of the following conditions.
8
+
9
+ Small loop (execute ↔ review):
10
+ - `Healthy (progress being made)` — findings are decreasing or meaningful progress is visible.
11
+ - `Unproductive (same rework repeating)` — the same fixes repeat with no improvement.
12
+
13
+ Large loop (replan → execute → review):
14
+ - `Healthy (progress being made)` — findings are decreasing or meaningful progress is visible.
15
+ - `Unproductive (no convergence)` — workers stay blocked or no convergence is visible.
@@ -0,0 +1,5 @@
1
+ # Exec Replan Instruction
2
+
3
+ Discuss replanning with the user after a review requests needs_replan.
4
+
5
+ Summarize the blocking issue from the review report, ask for the minimum needed clarification, and produce a revised plan when ready.
@@ -0,0 +1,10 @@
1
+ # Exec Review Instruction
2
+
3
+ Review the worker result in an independent session.
4
+
5
+ Check the task requirement, worker reports, and actual code changes. Return one of these statuses:
6
+ - approved: the task is complete.
7
+ - needs_fix: small implementation fixes are required.
8
+ - needs_replan: the approach needs user-level replanning.
9
+
10
+ Include concise evidence and concrete next steps.
@@ -0,0 +1,5 @@
1
+ # Exec Worker Instruction
2
+
3
+ Implement the requested task.
4
+
5
+ Use the task instruction and reports in the Report Directory as primary context. If this is a fix pass, address review findings first. Keep changes inside the assigned scope, run the relevant checks, and report changed files and verification results.
@@ -1,4 +1,4 @@
1
- Use reports in the Report Directory and fix reviewer findings with the minimum diff that preserves existing contracts.
1
+ Use reports in the Report Directory and fix reviewer findings within the causally related scope while preserving existing contracts.
2
2
 
3
3
  **Fix principles:**
4
4
  - When a finding includes a "suggested fix", follow it rather than inventing your own workaround
@@ -1,4 +1,4 @@
1
- Implement according to the plan with the minimum diff while preserving existing contracts.
1
+ Implement according to the plan within the causally related scope while preserving existing contracts.
2
2
  Refer only to files within the Report Directory shown in the Workflow Context. Do not search or reference other report directories.
3
3
  Use reports in the Report Directory as the primary source of truth. 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.
4
4
 
@@ -14,7 +14,7 @@ Use reports in the Report Directory as the primary source of truth. If additiona
14
14
  - Before implementation, classify planned changes as required, related, or unnecessary
15
15
  - Implement only required and related changes
16
16
  - Do not use a touched file as a reason to make style improvements, renames, file moves, hook return shape changes, comment deletions, or test expectation changes
17
- - If the existing structure can satisfy the request, do not restructure only to match common style
17
+ - Do not make structural changes that are not causally related to the request
18
18
  - When a specification change removes an old design, do not leave code or tests that only verify the absence of the old specification
19
19
  - After implementation, inspect the full diff and revert unnecessary changes
20
20
 
@@ -1,4 +1,4 @@
1
- Analyze the task as maintenance work for an existing frontend feature and produce a minimum-diff implementation plan that includes necessary design decisions.
1
+ Analyze the task as maintenance work for an existing feature and produce a causal-diff implementation plan that includes necessary design decisions.
2
2
 
3
3
  **Note:** If Previous Response exists, treat it as a rework request and compare it with the current files before revising the plan.
4
4
 
@@ -29,7 +29,7 @@ For small tasks, omit the design section. In maintenance work, do not omit exist
29
29
  - Same file, nearby responsibility, or common style is not enough to make a change related
30
30
  - Do not assign unnecessary changes to the Coder
31
31
  6. Decide file structure and design patterns when needed
32
- - If the existing structure can satisfy the request, keep it even if it is not ideal
32
+ - Where the request is not causally related, keep the existing structure even if it is not ideal
33
33
  7. Decide the implementation approach
34
34
  - Check that the approach does not violate Knowledge or Policy constraints
35
35
  - For user-facing additions or changes, fix the reachability condition, entry point, and activation path
@@ -48,4 +48,4 @@ For small tasks, omit the design section. In maintenance work, do not omit exist
48
48
  ## Existing Contracts
49
49
  - {Existing contracts to preserve}
50
50
  ## Implementation Plan
51
- - {Minimum-diff plan}
51
+ - {Causal-diff plan}
@@ -8,7 +8,9 @@ Procedure:
8
8
  5. If the diff adds or changes a shared helper, normalizer, builder, or adapter, verify that existing equivalent branches apply the same contract
9
9
  6. If types, schemas, validators, or resolvers changed, verify that the corresponding contracts are updated in the same change
10
10
  7. For values resolved or composed across multiple layers, trace the path from the real entry point through validation, not only standalone normalization
11
- 8. For diffs involving side effects or state changes, trace entry, normal completion, early exit, exception, and cleanup paths
12
- 9. Include only issues caused by the current diff that the user should fix
13
- 10. For each finding, include location, impact, and fix direction
14
- 11. Do not report unsupported speculation, preference-only changes, or unrelated pre-existing issues
11
+ 8. If a non-execution entry displays, validates, or explains the same value, compare whether it resolves through the same normalized input, override order, and resolver as the primary execution path
12
+ 9. When tests exist, verify that they cover the original requirement's branch conditions such as unset, set, invalid value, override, inherited, non-inherited, and unsupported target, not only value presence
13
+ 10. For diffs involving side effects or state changes, trace entry, normal completion, early exit, exception, and cleanup paths
14
+ 11. Include only issues caused by the current diff that the user should fix
15
+ 12. For each finding, include location, impact, and fix direction
16
+ 13. Do not report unsupported speculation, preference-only changes, or unrelated pre-existing issues
@@ -11,4 +11,9 @@ Procedure:
11
11
  2. If an external contract exists and input locations (root body / query / path) are not verified, treat it as a coverage gap by default
12
12
  3. For changes involving side effects or state transitions, check whether representative failure paths are tested, not just the happy path
13
13
  4. For changes that standardize a contract through consolidation or abstraction, check that contract tests cover existing equivalent branches as well as the new shared path
14
- 5. Do not treat mock-substituted verification as proof that the real integration was verified
14
+ 5. For changes to config values, runtime-selected capabilities, backends, options, or permissions, verify that tests cover the original requirement's branch conditions such as unset, set, override, inherited, and non-inherited, not merely value presence
15
+ 6. For changes where a non-execution entry displays, validates, or explains the same value, verify that tests check displayed values against the resolution input used during execution
16
+ 7. Do not treat mock-substituted verification as proof that the real integration was verified
17
+ 8. For prohibition, rejection, non-inheritance, unsupported targets, and isolation, verify that tests extract observable units and check each forbidden value instead of relying on exact-string absence alone
18
+ 9. For new configuration boundaries, check normalization inputs such as empty strings, whitespace-only strings, empty arrays, and case variants when relevant
19
+ 10. Verify that E2E timeout, cleanup, and forced-termination handling follows existing same-kind test conventions
@@ -218,6 +218,8 @@ Separate read and write entrypoints. Read-side query boundaries have no side eff
218
218
  | Read-oriented class or method names hide side effects | REJECT |
219
219
  | Simple read API calls a query boundary and converts to response DTO | OK |
220
220
  | Simple state-changing API resolves structural validation and authorization boundary, then dispatches one command | OK |
221
+ | Read-side coordinator for Controllers handles authorization boundaries, multiple Read Models, pagination, etc. | Express as ApplicationService or ReadService |
222
+ | Sender or coordinating component named QueryService is placed near QueryHandlers | Warning. Easy to confuse with the query handling side |
221
223
  | Controller contains multiple Read Model lookups, external integration, multiple commands, or result waiting | REJECT. Separate into UseCase layer |
222
224
  | UseCase only delegates to another service or command dispatch without domain coordination | Consider deleting |
223
225
 
@@ -243,6 +243,18 @@ Event distribution uses PubSub (via message broker) to deliver events to all ins
243
243
  | Command and Query responsibilities mixed in the same service | REJECT. Separate responsibility and naming |
244
244
  | Query side checks existence or scope and caller dispatches command | OK |
245
245
 
246
+ ### QueryHandler and ApplicationService Naming
247
+
248
+ In CQRS, the component that receives a query is the QueryHandler, and the entrypoint for dispatching queries is the QueryGateway / QueryBus. A facade called by Controllers for read use cases should be named ApplicationService or ReadService so it is not confused with a QueryHandler.
249
+
250
+ | Criteria | Judgment |
251
+ |----------|----------|
252
+ | Receives a Query, reads the Read Model, and returns a query result type | QueryHandler |
253
+ | Coordinates multiple Queries, authorization boundaries, pagination, or DTO assembly for Controllers | ApplicationService or ReadService |
254
+ | Class that only dispatches queries or coordinates reads is named QueryService | Warning. Easy to confuse with QueryHandler |
255
+ | QueryHandler knows HTTP requests/responses or Controller-specific error translation | REJECT |
256
+ | Simple read wrapper with no additional decision-making | Consider deleting. Controller may call QueryGateway directly |
257
+
246
258
  Types between layers:
247
259
  - `application/query/` - Query result types (e.g., `OrderDetail`)
248
260
  - `adapter/protocol/` - REST response types (e.g., `OrderDetailResponse`)
@@ -28,6 +28,18 @@ E2E tests observe behavior visible to the user. Checking configuration values, l
28
28
  | Only configuration or internal state is checked, with no user-visible result | REJECT |
29
29
  | Only real external-environment verification exists, with no deterministic test for the main boundary | Warning or REJECT |
30
30
 
31
+ ## Observing Negative Contracts
32
+
33
+ When E2E tests verify permissions, runtime-selected capabilities, backends, options, configuration, rejection, or isolation, a string-level negation across the whole output is weak evidence.
34
+ Extract the relevant line, event, record, field, or call argument, then check each forbidden value so order, case, whitespace, delimiters, or partial leaks cannot be missed.
35
+
36
+ | Criteria | Judgment |
37
+ |----------|----------|
38
+ | Treating rejection, non-inheritance, or isolation as verified only because one exact sentence is absent | REJECT |
39
+ | Checking only the displayed allowed value without proving forbidden values do not reach final processing | REJECT |
40
+ | Extracting observable units and checking forbidden, rejected, or non-inherited values per value | OK |
41
+ | Comparing allowed vs rejected and inherited vs non-inherited cases in the same scenario family | OK |
42
+
31
43
  ## UX Route Identification
32
44
 
33
45
  E2E test completeness depends on thorough UX route identification. Identify entry points from code, not documentation.
@@ -77,6 +89,7 @@ E2E tests are prone to non-deterministic failures.
77
89
  | Process leaks | Set timeouts and force-kill |
78
90
  | Environment dependency | Explicitly set up prerequisites for test execution |
79
91
  | Execution order dependency | Initialize state so each test runs independently |
92
+ | Timeout/cleanup diverges from existing convention | Follow existing same-kind E2E conventions |
80
93
 
81
94
  ```typescript
82
95
  // NG - fixed sleep for timing
@@ -40,9 +40,9 @@ In maintenance work, general design improvements and framework style are not alw
40
40
 
41
41
  | Situation | Judgment |
42
42
  |-----------|----------|
43
- | Component extraction would look cleaner but is unnecessary for this fix | Do not change |
43
+ | Component extraction would look cleaner but is not causally related to the request | Do not change |
44
44
  | Renaming or relocating Props types only to match common style | Do not change |
45
- | The existing structure cannot satisfy the request | Change the minimum necessary scope |
45
+ | The existing structure cannot satisfy the request | Change within the causally related scope |
46
46
  | The existing structure is the cause of the bug | Change it with reason and impact scope documented |
47
47
 
48
48
  ## Meaning of Comments and Tests
@@ -77,6 +77,33 @@ Models resolve through 5-level priority. Higher takes precedence.
77
77
  4. config.yaml (when resolved provider matches)
78
78
  5. Provider default
79
79
 
80
+ ## Auxiliary Entry Contracts
81
+
82
+ In TAKT, workflow runtime is not the only user-visible contract entry. Preview, doctor, workflow summary, validation, and report paths are also contract entries. Auxiliary entries that display or validate config values, providers, models, tools, permissions, or output contracts should use the same normalized input, resolver, and override order as runtime.
83
+
84
+ | Criteria | Judgment |
85
+ |----------|----------|
86
+ | Runtime and preview resolve provider, model, tool, or permission from different inputs | REJECT |
87
+ | Preview only displays a value without verifying the same override conditions as runtime | REJECT |
88
+ | Doctor or validation accepts config that fails at runtime due to different conditions | Warning |
89
+ | Runtime and auxiliary entries share the same normalized input or resolver | OK |
90
+
91
+ ## Runtime Asset Consumption Boundaries
92
+
93
+ TAKT runtime assets get their meaning from the entry point that consumes them, not only from their location or name. The same string can be an asset reference, session identifier, display name, or directly supplied body, and each is a separate contract.
94
+
95
+ | Criteria | Judgment |
96
+ |----------|----------|
97
+ | Treating an entry that resolves asset references and an entry that only uses identifiers as equivalent | REJECT |
98
+ | Adding a same-named facet and assuming it affects an entry that receives body content directly | REJECT |
99
+ | Workflow-derived runtime assets and feature-local runtime assets share the same responsibility name | Warning |
100
+ | Each entry point confirms which resolver or loader consumes which asset type before placing the asset | OK |
101
+ | Shared body content is centralized behind the existing runtime asset loader | OK |
102
+
103
+ ### Reference Names and Identity Names
104
+
105
+ Strings such as `persona`, `session_key`, and `name` mean different things depending on whether they are reference names or identity names. A reference name causes the corresponding resolver to load an asset. An identity name is a key for sessions, logs, state, or display, and a same-named file is not used unless that entry reads it. When adding a new asset, trace the loader that reads it and the call site that consumes it.
106
+
80
107
  ## Facet Assembly
81
108
 
82
109
  The faceted-prompting module is independent from TAKT core.
@@ -0,0 +1,13 @@
1
+ # Exec Review Result
2
+
3
+ ## Status
4
+
5
+ approved | needs_fix | needs_replan
6
+
7
+ ## Evidence
8
+
9
+ Concise evidence for the status.
10
+
11
+ ## Required Next Step
12
+
13
+ Concrete next action, if any.
@@ -0,0 +1,3 @@
1
+ # Assistant Persona
2
+
3
+ You are a TAKT assistant. Stay helpful, concise, and action-oriented.
@@ -0,0 +1,3 @@
1
+ # Worker Persona
2
+
3
+ You are a TAKT worker. Stay focused, precise, and self-contained.
@@ -1,19 +1,20 @@
1
1
  # Existing System Respect Policy
2
2
 
3
- For released or operational systems, make only the minimum changes required by the request and avoid changing existing contracts unnecessarily.
3
+ For released or operational systems, make changes that are causally related to the request and do not change existing contracts that lack that relationship.
4
4
 
5
5
  ## Principles
6
6
 
7
7
  | Principle | Criteria |
8
8
  |-----------|----------|
9
9
  | Existing contracts first | Preserve contracts relied on by users, tests, and operations |
10
- | Minimum diff | Keep only changes required to satisfy the request |
10
+ | Causal diff | Make changes causally related to the request; exclude changes without causal relationship |
11
11
  | Necessity over proximity | Do not use nearby code as a reason to change it |
12
- | Respect existing structure | Do not change file placement, type names, public APIs, or responsibility boundaries without explicit need |
12
+ | Respect existing structure | Do not change file placement, type names, public APIs, or responsibility boundaries without causal relationship to the request |
13
13
  | Preserve comments | Do not delete comments that explain intent, constraints, or calculation rationale |
14
14
  | Tests are contracts | Do not treat behavior asserted by existing tests as incidental |
15
- | Separate improvements | Style or cleanup improvements must be directly required by the task |
16
- | Maintenance constraints first | Prefer preserving existing behavior and structure over general quality improvements |
15
+ | Verify external contracts from primary evidence | Confirm behavior of external services, SDKs, and generated artifacts from official specs or actual types/schemas |
16
+ | Causal improvement judgment | Perform style improvements and refactoring when causally related to the request. Do not mix improvements without causal relationship |
17
+ | Protect unrelated code | Prioritize preserving existing behavior and structure that is not causally related to the request |
17
18
 
18
19
  ## Change Boundary
19
20
 
@@ -22,21 +23,22 @@ For released or operational systems, make only the minimum changes required by t
22
23
  | Change required to satisfy the request | OK |
23
24
  | Call-site update required to wire a necessary change | OK |
24
25
  | Local fix required to prevent side effects of a necessary change | OK |
26
+ | Structural change or refactoring causally related to the request | OK |
25
27
  | Cleanup justified only because the file was touched | REJECT |
26
- | Moving files, renaming types, or changing public APIs without explicit need | REJECT |
27
- | Mixing framework-style improvements into the task | REJECT |
28
- | Including improvements that can be handled in another PR | REJECT |
28
+ | Moving files, renaming types, or changing public APIs without causal relationship to the request | REJECT |
29
+ | Mixing framework-style improvements not causally related to the request | REJECT |
30
+ | Including improvements not causally related to the request | REJECT |
29
31
 
30
32
  ## Priority Against Other Policies
31
33
 
32
- In existing-system maintenance, apply general quality policies such as coding, frontend, design-fidelity, and testing only within the scope required by the request.
34
+ In existing-system maintenance, apply general quality policies such as coding, frontend, design-fidelity, and testing within the scope causally related to the request.
33
35
 
34
36
  | Conflict | Verdict |
35
37
  |----------|---------|
36
- | General quality criteria suggest an improvement, but the request does not require it | Do not change |
37
- | Existing structure is imperfect, but can satisfy this request | Preserve existing structure |
38
+ | General quality criteria suggest an improvement, but it is not causally related to the request | Do not change |
39
+ | Existing structure is imperfect, but not causally related to the request | Preserve existing structure |
38
40
  | Satisfying a quality criterion requires changing an existing contract | Requires an explicit user request or plan-level rationale |
39
- | A minimal structural change is required for a bug fix | Make it with reason and impact scope documented |
41
+ | Structural change causally related to the request | Make it with reason and impact scope documented |
40
42
 
41
43
  ## Observable Contracts
42
44
 
@@ -44,11 +46,23 @@ UI, accessibility, tests, logs, APIs, types, file placement, and comments can be
44
46
 
45
47
  | Contract | Change condition |
46
48
  |----------|------------------|
47
- | UI copy, accessible names, role/state | Change only when directly required by the request |
48
- | Hook return values, Props type names, public function names | Change only when caller updates are required to satisfy the request |
49
+ | UI copy, accessible names, role/state | Change only when causally related to the request |
50
+ | Hook return values, Props type names, public function names | Change only when required for caller updates causally related to the request |
49
51
  | Test expectations | Change only when the requested behavior changes |
50
52
  | Comments | Change only when correcting inaccurate comments or when code makes them truly obsolete |
51
- | File placement | Change only when the existing structure cannot satisfy the request |
53
+ | File placement | Change only when causally related to the request |
54
+
55
+ ## External Dependency Contracts
56
+
57
+ Treat behavior of external services, SDKs, generated code, schemas, and CLIs as boundary contracts of the existing system. Do not infer one operation's error types, statuses, return values, idempotency, limits, or optionality from another operation without verification.
58
+
59
+ | Criteria | Verdict |
60
+ |----------|---------|
61
+ | The concrete contract is verified from official specs, actual type definitions, generated schemas, or existing equivalent implementation | OK |
62
+ | Error types, statuses, or return values from a different operation in the same service are generalized as "equivalent" and reused for an unverified operation | REJECT |
63
+ | Compile success, mock success, or stub expectations alone are treated as proof of the external contract | REJECT |
64
+ | Plans or implementation guidelines keep vague external-contract wording such as "equivalent" or "same as" | REJECT |
65
+ | When the external contract cannot be verified, the unverified scope, risk, and verification method are recorded | OK |
52
66
 
53
67
  ## Test Changes
54
68
 
@@ -70,4 +84,4 @@ Before completion, classify the full diff as required changes, related changes,
70
84
  |----------------|----------|
71
85
  | Required change | The request fails without it |
72
86
  | Related change | Needed to connect, verify, or keep a required change consistent |
73
- | Unnecessary change | Justified only by readability, style, cleanup, or future extensibility |
87
+ | Unnecessary change | Not causally related to the request; justified only by readability, style, cleanup, or future extensibility |
@@ -13,6 +13,7 @@ Define the shared judgment criteria and behavioral principles for all reviewers.
13
13
  | State consistency | For side effects and state changes, verify that success, failure, and interruption paths have no missing, duplicated, or inconsistent effects |
14
14
  | Contract coverage | Verify new contracts across normal entries, derived conditions, validation, evaluation, output, and re-injection paths |
15
15
  | Contract consistency | Verify that contracts carried by consolidation or abstraction are applied to existing equivalent branches by the same standard |
16
+ | External contract verification | Verify semantic contracts of external services, SDKs, and generated artifacts from primary evidence or actual types |
16
17
  | Specification completeness | When changing a user-facing contract, verify that implementation, tests, and documentation describe the same lookup order, override rules, special syntax, and failure conditions |
17
18
  | Requirement anchoring | Do not reinterpret required task items as optional, out of scope, or different requirements for implementation convenience |
18
19
  | Resolution judgment | Judge `resolved` against the original finding acceptance criteria and original task requirements, not merely against the presence of a fix |
@@ -57,6 +58,7 @@ REJECT without exception if any of the following apply.
57
58
  - User-facing contract changes for configuration, CLI, or file formats where documentation or examples omit priority, first-match/merge behavior, inline overrides, scoped/special references, or failure conditions
58
59
  - Existing branches with the same contract remain on the old implementation after adding or changing a shared helper, normalizer, builder, or adapter
59
60
  - Fields, attributes, outputs, settings, or identifiers requested by the task are treated as optional, unset, out of scope, or missing for some entry point or execution mode without explicit evidence
61
+ - Operation-specific error types, statuses, return values, or idempotency of an external service, SDK, or generated artifact are not verified, and another operation's contract or mock success is used instead
60
62
  - Missing, duplicated, or incorrectly ordered effects in side-effect or state-change paths
61
63
  - Sensitive data exposed in logs, error responses, or test output
62
64
 
@@ -13,6 +13,8 @@ Every behavior change requires a corresponding test, and every bug fix requires
13
13
  | Type safety | Code must pass the build (type check) |
14
14
  | Reproducibility | Do not depend on time or randomness. Same result every run |
15
15
  | Do not freeze non-executable assets | Do not make prose or section structure that does not define runtime behavior a CI failure condition |
16
+ | Verify negative contracts at observable units | Do not pass prohibition, rejection, non-inheritance, or unsupported cases by exact-string absence alone |
17
+ | Mock contract fidelity | Keep external SDK/API mocks aligned with real contracts and do not freeze wrong assumptions in tests |
16
18
 
17
19
  ## Coverage Criteria
18
20
 
@@ -113,6 +115,33 @@ When a change standardizes a contract through a shared helper, normalizer, build
113
115
  | Return / throw / catch / early return paths in the changed function are not enumerated, causing representative failure paths to be missed | REJECT |
114
116
  | Existing branches with the same responsibility have tests for return values, side effects, events, and error classification contracts | OK |
115
117
 
118
+ ## Contract Test Sufficiency
119
+
120
+ When adding or changing a config value, runtime-selected capability, backend, option, permission, or output contract, tests must prove the branch conditions that change the contract, not merely that a value exists.
121
+
122
+ | Criteria | Verdict |
123
+ |----------|---------|
124
+ | Only the happy path for a new option is verified | Warning |
125
+ | Requirement-relevant branches among unset, set, invalid value, inherited, non-inherited, override, and unsupported target are not verified | REJECT |
126
+ | A user-facing display or validation entry is not verified to follow the same contract as the primary execution path | REJECT |
127
+ | A test only checks displayed values without verifying they match the resolution input used during execution | REJECT |
128
+ | Absence is verified only by exact string matching, missing order, case, whitespace, or partial-leak differences | REJECT |
129
+ | Boundary values that may be normalized at configuration boundaries, such as empty strings, whitespace-only strings, empty arrays, or case variants, are not tested | Warning. REJECT when this is a primary contract branch |
130
+ | The path from entry point to final call verifies happy, rejection, and non-inheritance cases | OK |
131
+
132
+ ## Testing Negative, Non-Inheritance, and Rejection Contracts
133
+
134
+ Tests for prohibition, rejection, non-inheritance, unsupported targets, and isolation must not rely only on a specific string being absent from the whole output.
135
+ Extract observable units such as output lines, records, fields, or call arguments, then verify each forbidden value cannot leak through order, case, whitespace, delimiter, or partial-match differences.
136
+
137
+ | Criteria | Verdict |
138
+ |----------|---------|
139
+ | Exact-string absence alone is used to conclude that a forbidden or non-inherited value was not used | REJECT |
140
+ | Only allowed-value presence is checked, without proving rejected, forbidden, or non-inherited values do not reach final processing | REJECT |
141
+ | Observable units such as output lines, events, records, fields, or call arguments are extracted and checked per forbidden value | OK |
142
+ | Allowed vs rejected and inherited vs non-inherited cases are tested as pairs | OK |
143
+ | A new E2E test does not follow existing same-kind conventions for timeout, cleanup, and forced termination | Warning. REJECT when it can cause process leaks or flakes |
144
+
116
145
  ## Parser and Configuration Boundary Tests
117
146
 
118
147
  At boundaries that read external files, configuration, YAML/JSON, or CLI input, testing only the ideal typed input is not sufficient.
@@ -136,6 +165,18 @@ Test data should explicitly generate the minimum facts needed by each test. Muta
136
165
  | Factories provide defaults and each test overrides only relevant fields | OK |
137
166
  | Contract changes update fixtures, mocks, and snapshots in the same change | OK |
138
167
 
168
+ ## External Contract Mocks
169
+
170
+ When mocking an external SDK, external API, generated client, or CLI, align mocked exception types, statuses, return values, missing values, partial successes, and idempotency with the real contract. Type compatibility alone does not verify the semantic contract.
171
+
172
+ | Criteria | Verdict |
173
+ |----------|---------|
174
+ | Mock values are chosen by checking official specs, SDK types, generated schemas, or existing equivalent tests | OK |
175
+ | The mock throws the exception or return value expected by the implementation, and test success is used as proof of the external contract | REJECT |
176
+ | Error types or response shapes from a different operation in the same service are reused | REJECT |
177
+ | The mock is type-safe but operation-specific semantic contracts, such as existing-resource behavior, partial success, or missing detection, are not verified | REJECT |
178
+ | When real integration is stubbed, the report separates what the mock verifies from the unverified real-integration scope | OK |
179
+
139
180
  ### Naming
140
181
 
141
182
  Test names describe expected behavior. Use the `should {expected behavior} when {condition}` pattern.
@@ -24,6 +24,7 @@ workflow_categories:
24
24
  workflows:
25
25
  - backend
26
26
  - backend-mini
27
+ - backend-maintenance
27
28
  - backend-cqrs
28
29
  - backend-cqrs-mini
29
30
  🔧 Dual: