takt 0.40.0 → 0.41.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 (287) hide show
  1. package/builtins/en/config.yaml +2 -0
  2. package/builtins/en/facets/instructions/_system/fallback-notice.md +16 -0
  3. package/builtins/en/facets/instructions/ai-antipattern-fix.md +2 -14
  4. package/builtins/en/facets/instructions/ai-antipattern-review.md +5 -11
  5. package/builtins/en/facets/instructions/implement-after-tests.md +6 -7
  6. package/builtins/en/facets/instructions/implement.md +6 -7
  7. package/builtins/en/facets/instructions/review-arch.md +4 -36
  8. package/builtins/en/facets/instructions/review-cqrs-es.md +7 -23
  9. package/builtins/en/facets/instructions/review-frontend.md +6 -32
  10. package/builtins/en/facets/instructions/review-qa.md +5 -31
  11. package/builtins/en/facets/instructions/review-requirements.md +6 -24
  12. package/builtins/en/facets/instructions/review-security.md +13 -36
  13. package/builtins/en/facets/instructions/review-terraform.md +4 -28
  14. package/builtins/en/facets/instructions/review-test.md +8 -29
  15. package/builtins/en/facets/instructions/supervise.md +17 -35
  16. package/builtins/en/facets/knowledge/cqrs-es.md +18 -0
  17. package/builtins/en/facets/knowledge/frontend.md +4 -2
  18. package/builtins/en/facets/knowledge/react.md +3 -0
  19. package/builtins/en/facets/policies/review.md +30 -0
  20. package/builtins/en/workflows/auto-improvement-loop.yaml +20 -6
  21. package/builtins/ja/INSTRUCTION_STYLE_GUIDE.md +38 -3
  22. package/builtins/ja/config.yaml +2 -0
  23. package/builtins/ja/facets/instructions/_system/fallback-notice.md +16 -0
  24. package/builtins/ja/facets/instructions/ai-antipattern-fix.md +4 -16
  25. package/builtins/ja/facets/instructions/ai-antipattern-review.md +7 -13
  26. package/builtins/ja/facets/instructions/implement-after-tests.md +6 -7
  27. package/builtins/ja/facets/instructions/implement.md +6 -7
  28. package/builtins/ja/facets/instructions/review-arch.md +5 -37
  29. package/builtins/ja/facets/instructions/review-cqrs-es.md +7 -23
  30. package/builtins/ja/facets/instructions/review-frontend.md +6 -32
  31. package/builtins/ja/facets/instructions/review-qa.md +5 -31
  32. package/builtins/ja/facets/instructions/review-requirements.md +10 -28
  33. package/builtins/ja/facets/instructions/review-security.md +13 -36
  34. package/builtins/ja/facets/instructions/review-terraform.md +5 -29
  35. package/builtins/ja/facets/instructions/review-test.md +8 -29
  36. package/builtins/ja/facets/instructions/supervise.md +15 -33
  37. package/builtins/ja/facets/knowledge/cqrs-es.md +18 -0
  38. package/builtins/ja/facets/knowledge/frontend.md +4 -2
  39. package/builtins/ja/facets/knowledge/react.md +3 -0
  40. package/builtins/ja/facets/policies/review.md +30 -0
  41. package/builtins/ja/workflows/auto-improvement-loop.yaml +20 -6
  42. package/builtins/schemas/followup-task.json +65 -10
  43. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +1 -0
  44. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  45. package/dist/agents/structured-caller/prompt-based-structured-caller.js +64 -36
  46. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  47. package/dist/core/models/config-schemas.d.ts +32 -0
  48. package/dist/core/models/config-schemas.d.ts.map +1 -1
  49. package/dist/core/models/config-schemas.js +2 -1
  50. package/dist/core/models/config-schemas.js.map +1 -1
  51. package/dist/core/models/config-types.d.ts +3 -1
  52. package/dist/core/models/config-types.d.ts.map +1 -1
  53. package/dist/core/models/index.d.ts +1 -1
  54. package/dist/core/models/index.d.ts.map +1 -1
  55. package/dist/core/models/index.js.map +1 -1
  56. package/dist/core/models/part.d.ts +5 -0
  57. package/dist/core/models/part.d.ts.map +1 -1
  58. package/dist/core/models/response.d.ts +9 -0
  59. package/dist/core/models/response.d.ts.map +1 -1
  60. package/dist/core/models/response.js.map +1 -1
  61. package/dist/core/models/schema-base.d.ts +20 -0
  62. package/dist/core/models/schema-base.d.ts.map +1 -1
  63. package/dist/core/models/schema-base.js +9 -2
  64. package/dist/core/models/schema-base.js.map +1 -1
  65. package/dist/core/models/status.d.ts +1 -1
  66. package/dist/core/models/status.d.ts.map +1 -1
  67. package/dist/core/models/status.js +1 -1
  68. package/dist/core/models/status.js.map +1 -1
  69. package/dist/core/models/types.d.ts +2 -2
  70. package/dist/core/models/types.d.ts.map +1 -1
  71. package/dist/core/models/workflow-condition-expression.d.ts +12 -0
  72. package/dist/core/models/workflow-condition-expression.d.ts.map +1 -0
  73. package/dist/core/models/workflow-condition-expression.js +26 -0
  74. package/dist/core/models/workflow-condition-expression.js.map +1 -0
  75. package/dist/core/models/workflow-provider-options.d.ts +1 -0
  76. package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
  77. package/dist/core/models/workflow-provider-options.js.map +1 -1
  78. package/dist/core/models/workflow-schemas.d.ts +323 -0
  79. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  80. package/dist/core/models/workflow-schemas.js +59 -5
  81. package/dist/core/models/workflow-schemas.js.map +1 -1
  82. package/dist/core/models/workflow-system-input-types.d.ts +1 -0
  83. package/dist/core/models/workflow-system-input-types.d.ts.map +1 -1
  84. package/dist/core/models/workflow-system-schemas.d.ts +1 -0
  85. package/dist/core/models/workflow-system-schemas.d.ts.map +1 -1
  86. package/dist/core/models/workflow-system-schemas.js +1 -0
  87. package/dist/core/models/workflow-system-schemas.js.map +1 -1
  88. package/dist/core/models/workflow-types.d.ts +33 -0
  89. package/dist/core/models/workflow-types.d.ts.map +1 -1
  90. package/dist/core/workflow/arpeggio/types.d.ts +3 -0
  91. package/dist/core/workflow/arpeggio/types.d.ts.map +1 -1
  92. package/dist/core/workflow/engine/ArpeggioRunner.d.ts +3 -6
  93. package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
  94. package/dist/core/workflow/engine/ArpeggioRunner.js +40 -19
  95. package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
  96. package/dist/core/workflow/engine/OptionsBuilder.d.ts.map +1 -1
  97. package/dist/core/workflow/engine/OptionsBuilder.js +5 -1
  98. package/dist/core/workflow/engine/OptionsBuilder.js.map +1 -1
  99. package/dist/core/workflow/engine/ParallelRunner.d.ts +4 -6
  100. package/dist/core/workflow/engine/ParallelRunner.d.ts.map +1 -1
  101. package/dist/core/workflow/engine/ParallelRunner.js +55 -12
  102. package/dist/core/workflow/engine/ParallelRunner.js.map +1 -1
  103. package/dist/core/workflow/engine/StepExecutor.d.ts +10 -7
  104. package/dist/core/workflow/engine/StepExecutor.d.ts.map +1 -1
  105. package/dist/core/workflow/engine/StepExecutor.js +81 -11
  106. package/dist/core/workflow/engine/StepExecutor.js.map +1 -1
  107. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts +3 -5
  108. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  109. package/dist/core/workflow/engine/TeamLeaderRunner.js +30 -7
  110. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  111. package/dist/core/workflow/engine/WorkflowCallExecutor.d.ts.map +1 -1
  112. package/dist/core/workflow/engine/WorkflowCallExecutor.js +1 -0
  113. package/dist/core/workflow/engine/WorkflowCallExecutor.js.map +1 -1
  114. package/dist/core/workflow/engine/WorkflowCallRunner.d.ts +3 -6
  115. package/dist/core/workflow/engine/WorkflowCallRunner.d.ts.map +1 -1
  116. package/dist/core/workflow/engine/WorkflowCallRunner.js +1 -1
  117. package/dist/core/workflow/engine/WorkflowCallRunner.js.map +1 -1
  118. package/dist/core/workflow/engine/WorkflowEngine.d.ts.map +1 -1
  119. package/dist/core/workflow/engine/WorkflowEngine.js +23 -17
  120. package/dist/core/workflow/engine/WorkflowEngine.js.map +1 -1
  121. package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts +4 -1
  122. package/dist/core/workflow/engine/WorkflowEngineSetup.d.ts.map +1 -1
  123. package/dist/core/workflow/engine/WorkflowEngineSetup.js +1 -0
  124. package/dist/core/workflow/engine/WorkflowEngineSetup.js.map +1 -1
  125. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts +9 -27
  126. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.d.ts.map +1 -1
  127. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js +6 -6
  128. package/dist/core/workflow/engine/WorkflowEngineStepCoordinator.js.map +1 -1
  129. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts +5 -6
  130. package/dist/core/workflow/engine/WorkflowRunLoop.d.ts.map +1 -1
  131. package/dist/core/workflow/engine/WorkflowRunLoop.js +151 -8
  132. package/dist/core/workflow/engine/WorkflowRunLoop.js.map +1 -1
  133. package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -1
  134. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  135. package/dist/core/workflow/engine/state-manager.d.ts +1 -0
  136. package/dist/core/workflow/engine/state-manager.d.ts.map +1 -1
  137. package/dist/core/workflow/engine/state-manager.js +11 -0
  138. package/dist/core/workflow/engine/state-manager.js.map +1 -1
  139. package/dist/core/workflow/engine/structured-output-normalizer.d.ts +23 -0
  140. package/dist/core/workflow/engine/structured-output-normalizer.d.ts.map +1 -0
  141. package/dist/core/workflow/engine/structured-output-normalizer.js +13 -0
  142. package/dist/core/workflow/engine/structured-output-normalizer.js.map +1 -0
  143. package/dist/core/workflow/engine/team-leader-part-runner.d.ts +2 -1
  144. package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
  145. package/dist/core/workflow/engine/team-leader-part-runner.js +17 -6
  146. package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
  147. package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
  148. package/dist/core/workflow/instruction/InstructionBuilder.js +7 -0
  149. package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
  150. package/dist/core/workflow/instruction/fallback-notice.d.ts +3 -0
  151. package/dist/core/workflow/instruction/fallback-notice.d.ts.map +1 -0
  152. package/dist/core/workflow/instruction/fallback-notice.js +20 -0
  153. package/dist/core/workflow/instruction/fallback-notice.js.map +1 -0
  154. package/dist/core/workflow/instruction/instruction-context.d.ts +3 -1
  155. package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
  156. package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
  157. package/dist/core/workflow/phase-runner.d.ts +3 -1
  158. package/dist/core/workflow/phase-runner.d.ts.map +1 -1
  159. package/dist/core/workflow/phase-runner.js.map +1 -1
  160. package/dist/core/workflow/promotion/PromotionEvaluator.d.ts +13 -0
  161. package/dist/core/workflow/promotion/PromotionEvaluator.d.ts.map +1 -0
  162. package/dist/core/workflow/promotion/PromotionEvaluator.js +40 -0
  163. package/dist/core/workflow/promotion/PromotionEvaluator.js.map +1 -0
  164. package/dist/core/workflow/promotion/promotion-runtime.d.ts +11 -0
  165. package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -0
  166. package/dist/core/workflow/promotion/promotion-runtime.js +112 -0
  167. package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -0
  168. package/dist/core/workflow/provider-options-trace.d.ts +3 -2
  169. package/dist/core/workflow/provider-options-trace.d.ts.map +1 -1
  170. package/dist/core/workflow/provider-resolution.js +10 -10
  171. package/dist/core/workflow/provider-resolution.js.map +1 -1
  172. package/dist/core/workflow/report-phase-runner.d.ts +5 -1
  173. package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
  174. package/dist/core/workflow/report-phase-runner.js +21 -3
  175. package/dist/core/workflow/report-phase-runner.js.map +1 -1
  176. package/dist/core/workflow/system/system-step-effect-runner.d.ts.map +1 -1
  177. package/dist/core/workflow/system/system-step-effect-runner.js +4 -1
  178. package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
  179. package/dist/core/workflow/types.d.ts +15 -2
  180. package/dist/core/workflow/types.d.ts.map +1 -1
  181. package/dist/features/tasks/add/issueTask.d.ts +1 -14
  182. package/dist/features/tasks/add/issueTask.d.ts.map +1 -1
  183. package/dist/features/tasks/add/issueTask.js +124 -20
  184. package/dist/features/tasks/add/issueTask.js.map +1 -1
  185. package/dist/features/tasks/execute/workflowExecution.d.ts.map +1 -1
  186. package/dist/features/tasks/execute/workflowExecution.js +3 -0
  187. package/dist/features/tasks/execute/workflowExecution.js.map +1 -1
  188. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  189. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +2 -0
  190. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  191. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  192. package/dist/features/tasks/execute/workflowExecutionEvents.js +18 -2
  193. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  194. package/dist/infra/claude/client.d.ts.map +1 -1
  195. package/dist/infra/claude/client.js +5 -0
  196. package/dist/infra/claude/client.js.map +1 -1
  197. package/dist/infra/claude/executor.d.ts.map +1 -1
  198. package/dist/infra/claude/executor.js +35 -20
  199. package/dist/infra/claude/executor.js.map +1 -1
  200. package/dist/infra/claude/types.d.ts +2 -1
  201. package/dist/infra/claude/types.d.ts.map +1 -1
  202. package/dist/infra/claude-headless/client.d.ts.map +1 -1
  203. package/dist/infra/claude-headless/client.js +10 -3
  204. package/dist/infra/claude-headless/client.js.map +1 -1
  205. package/dist/infra/claude-headless/headless-spawn.d.ts +1 -0
  206. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
  207. package/dist/infra/claude-headless/headless-spawn.js +16 -0
  208. package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
  209. package/dist/infra/claude-headless/result-response.d.ts.map +1 -1
  210. package/dist/infra/claude-headless/result-response.js +34 -0
  211. package/dist/infra/claude-headless/result-response.js.map +1 -1
  212. package/dist/infra/codex/client.d.ts +1 -0
  213. package/dist/infra/codex/client.d.ts.map +1 -1
  214. package/dist/infra/codex/client.js +21 -1
  215. package/dist/infra/codex/client.js.map +1 -1
  216. package/dist/infra/config/configNormalizers.d.ts +13 -1
  217. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  218. package/dist/infra/config/configNormalizers.js +37 -2
  219. package/dist/infra/config/configNormalizers.js.map +1 -1
  220. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
  221. package/dist/infra/config/global/globalConfigCore.js +2 -1
  222. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  223. package/dist/infra/config/global/globalConfigSerializer.d.ts.map +1 -1
  224. package/dist/infra/config/global/globalConfigSerializer.js +5 -1
  225. package/dist/infra/config/global/globalConfigSerializer.js.map +1 -1
  226. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  227. package/dist/infra/config/loaders/workflowParser.js +2 -1
  228. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  229. package/dist/infra/config/loaders/workflowRuleNormalizer.d.ts.map +1 -1
  230. package/dist/infra/config/loaders/workflowRuleNormalizer.js +8 -9
  231. package/dist/infra/config/loaders/workflowRuleNormalizer.js.map +1 -1
  232. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  233. package/dist/infra/config/loaders/workflowStepNormalizer.js +21 -0
  234. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  235. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  236. package/dist/infra/config/project/projectConfig.js +11 -3
  237. package/dist/infra/config/project/projectConfig.js.map +1 -1
  238. package/dist/infra/config/providerOptions.d.ts +2 -1
  239. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  240. package/dist/infra/config/providerOptions.js +17 -3
  241. package/dist/infra/config/providerOptions.js.map +1 -1
  242. package/dist/infra/config/providerOptionsContract.d.ts +3 -3
  243. package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
  244. package/dist/infra/config/providerOptionsContract.js +3 -0
  245. package/dist/infra/config/providerOptionsContract.js.map +1 -1
  246. package/dist/infra/config/traced/tracedConfigSchema.d.ts.map +1 -1
  247. package/dist/infra/config/traced/tracedConfigSchema.js +4 -0
  248. package/dist/infra/config/traced/tracedConfigSchema.js.map +1 -1
  249. package/dist/infra/mock/client.d.ts.map +1 -1
  250. package/dist/infra/mock/client.js +2 -0
  251. package/dist/infra/mock/client.js.map +1 -1
  252. package/dist/infra/mock/scenario.d.ts.map +1 -1
  253. package/dist/infra/mock/scenario.js +11 -0
  254. package/dist/infra/mock/scenario.js.map +1 -1
  255. package/dist/infra/mock/types.d.ts +9 -0
  256. package/dist/infra/mock/types.d.ts.map +1 -1
  257. package/dist/infra/opencode/client.d.ts +1 -0
  258. package/dist/infra/opencode/client.d.ts.map +1 -1
  259. package/dist/infra/opencode/client.js +22 -0
  260. package/dist/infra/opencode/client.js.map +1 -1
  261. package/dist/infra/opencode/types.d.ts +1 -0
  262. package/dist/infra/opencode/types.d.ts.map +1 -1
  263. package/dist/infra/providers/opencode.d.ts.map +1 -1
  264. package/dist/infra/providers/opencode.js +1 -0
  265. package/dist/infra/providers/opencode.js.map +1 -1
  266. package/dist/infra/rate-limit/detection.d.ts +13 -0
  267. package/dist/infra/rate-limit/detection.d.ts.map +1 -0
  268. package/dist/infra/rate-limit/detection.js +45 -0
  269. package/dist/infra/rate-limit/detection.js.map +1 -0
  270. package/dist/infra/workflow/structured-output/followup-task-normalizer.d.ts +3 -0
  271. package/dist/infra/workflow/structured-output/followup-task-normalizer.d.ts.map +1 -0
  272. package/dist/infra/workflow/structured-output/followup-task-normalizer.js +206 -0
  273. package/dist/infra/workflow/structured-output/followup-task-normalizer.js.map +1 -0
  274. package/dist/infra/workflow/system/system-enqueue-effect.d.ts.map +1 -1
  275. package/dist/infra/workflow/system/system-enqueue-effect.js +4 -2
  276. package/dist/infra/workflow/system/system-enqueue-effect.js.map +1 -1
  277. package/dist/shared/prompts/en/perform_phase1_message.md +11 -1
  278. package/dist/shared/prompts/ja/perform_phase1_message.md +11 -1
  279. package/dist/shared/utils/delay.d.ts +2 -0
  280. package/dist/shared/utils/delay.d.ts.map +1 -0
  281. package/dist/shared/utils/delay.js +4 -0
  282. package/dist/shared/utils/delay.js.map +1 -0
  283. package/dist/shared/utils/index.d.ts +1 -0
  284. package/dist/shared/utils/index.d.ts.map +1 -1
  285. package/dist/shared/utils/index.js +1 -0
  286. package/dist/shared/utils/index.js.map +1 -1
  287. package/package.json +1 -1
@@ -203,6 +203,36 @@ Do not tolerate problems just because existing code does the same. If existing c
203
203
  - "The code itself existed before" is not a valid reason for non-blocking. As long as it is in a changed file, the Boy Scout rule applies
204
204
  - If even one issue exists, REJECT. "APPROVE with warnings" or "APPROVE with suggestions" is prohibited
205
205
 
206
+ ## Basic Review Procedure
207
+
208
+ Common procedure that every reviewer must follow. Do not duplicate this in individual instructions.
209
+
210
+ ### Referring to Primary Sources
211
+
212
+ - Use `order.md`, `plan.md`, and the actual code as primary sources
213
+ - Treat decisions from earlier steps (prior review results, planning decisions) as supplementary
214
+ - When information conflicts, prioritize `order.md` / `plan.md` / actual code
215
+
216
+ ### Referring to Design Decisions
217
+
218
+ - If the implementation step has emitted `coder-decisions.md`, read it and understand the recorded design decisions
219
+ - Do not dismiss intentional decisions as false positives just because they were recorded. Evaluate validity against `order.md` / `plan.md` / actual code
220
+ - If the design decision itself is flawed, raise it
221
+
222
+ ### Tracking Findings from Previous Reviews
223
+
224
+ - Look in the Report Directory for review reports this step has previously produced, along with their timestamped history
225
+ - Treat the unsuffixed file as the latest result and the most recent `{report-name}.{timestamp}` as the previous result
226
+ - `Previous Response` may be used as supplementary information, but finding state determinations must prioritize the report history
227
+ - Do not drop open findings from the previous report when producing the new report
228
+ - Apply the `finding_id` management rules when classifying each finding as `new` / `persists` / `resolved` / `reopened`
229
+
230
+ ### Final Decision Steps
231
+
232
+ 1. Classify each detected issue as blocking / non-blocking according to the scope rules and decision rules above
233
+ 2. When citing test, build, or behavior verification as evidence, record the target, the check, and the result in the report
234
+ 3. REJECT if there is at least one blocking issue (`new`, `persists`, or `reopened`)
235
+
206
236
  ## Detecting Circular Arguments
207
237
 
208
238
  When the same kind of issue keeps recurring, reconsider the approach itself rather than repeating the same fix instructions.
@@ -85,10 +85,17 @@ steps:
85
85
  Treat the current issue itself as in-scope, not as a duplicate.
86
86
  Avoid tasks that materially duplicate or overlap with an open PR or the other open issues listed above.
87
87
 
88
- Do not implement anything. Output only the next task instruction in task_markdown.
88
+ Do not implement anything. Output only the next task metadata as structured output.
89
89
  Output the next action in action.
90
- Always output task_markdown and issue.
91
- For wait_before_next_scan, set task_markdown to an empty string and issue to { create: false, labels: [] }.
90
+ Always output title, type, scope, summary, goals, acceptance_criteria, and issue.
91
+ Output labels only when needed.
92
+ In title, output a concise GitHub Issue title.
93
+ Do not use generic headings such as "# Task Order" or "Task Order" in title.
94
+ Set type to one of feature / bug / chore / docs.
95
+ TAKT renders summary, goals, and acceptance_criteria into this Markdown template:
96
+ ## Summary / ## Goals / ## Acceptance Criteria
97
+ For enqueue_new_task, set at least one goal and at least two acceptance criteria.
98
+ For wait_before_next_scan, set title, scope, and summary to empty strings, type to "chore", goals and acceptance_criteria to empty arrays, labels to an empty array, and issue to { create: false }.
92
99
  For an existing issue task, set issue.create to false unless a new GitHub Issue is explicitly needed.
93
100
 
94
101
  Allowed action values:
@@ -148,10 +155,17 @@ steps:
148
155
  Avoid tasks that materially duplicate or overlap with an open PR or tracked open issue.
149
156
  If you cannot identify a clearly distinct, high-value task, choose wait_before_next_scan.
150
157
 
151
- Do not implement anything. Output only the next task instruction in task_markdown.
158
+ Do not implement anything. Output only the next task metadata as structured output.
152
159
  Output the next action in action.
153
- Always output task_markdown and issue.
154
- For wait_before_next_scan, set task_markdown to an empty string and issue to { create: false, labels: [] }.
160
+ Always output title, type, scope, summary, goals, acceptance_criteria, and issue.
161
+ Output labels only when needed.
162
+ In title, output a concise GitHub Issue title.
163
+ Do not use generic headings such as "# Task Order" or "Task Order" in title.
164
+ Set type to one of feature / bug / chore / docs.
165
+ TAKT renders summary, goals, and acceptance_criteria into this Markdown template:
166
+ ## Summary / ## Goals / ## Acceptance Criteria
167
+ For enqueue_new_task, set at least one goal and at least two acceptance criteria.
168
+ For wait_before_next_scan, set title, scope, and summary to empty strings, type to "chore", goals and acceptance_criteria to empty arrays, labels to an empty array, and issue to { create: false }.
155
169
  For a fresh improvement task, set issue.create to true so the task is backed by a GitHub Issue.
156
170
 
157
171
  Allowed action values:
@@ -206,9 +206,44 @@ InstructionBuilder が `instruction` 内の `{変数名}` を展開する。イ
206
206
 
207
207
  1. **ペルソナの内容**: エージェントの専門知識、検出手法、行動姿勢
208
208
  2. **ポリシーの内容**: DRY、Fail Fast 等の共有コーディング原則
209
- 3. **自動注入される内容**: `{task}`, `{previous_response}` のプレースホルダーを明示的に書かない(エンジンが自動付加する)
210
- 4. **他のステップ名の直接参照**: 「implement ステップに戻る」等(ルーティングはルール定義の責務)
211
- 5. **ワークフロー固有のルーティング**:APPROVE なら次へ」等(ルール条件の責務)
209
+ 3. **ナレッジの判定基準・パターン**: 観点リスト、判定基準テーブル、コード例
210
+ 4. **自動注入される内容**: `{task}`, `{previous_response}` のプレースホルダーを明示的に書かない(エンジンが自動付加する)
211
+ 5. **他のステップ名の直接参照**:implement ステップに戻る」等(ルーティングはルール定義の責務)
212
+ 6. **ワークフロー固有のルーティング**: 「APPROVE なら次へ」等(ルール条件の責務)
213
+
214
+ ### レビュー系インストラクションでの観点列挙の禁止
215
+
216
+ レビュー系(review-*, ai-antipattern-review, audit-*-review)の instruction で「**レビュー観点:**」「**チェック項目:**」のような観点リストを列挙してはならない。
217
+
218
+ 理由:
219
+ - 観点・判定基準は対応する Knowledge / Policy に既に揃っている
220
+ - instruction に観点を抜粋すると、policy / knowledge に章を追加しても instruction に反映されず drift する
221
+ - AI が観点リストを「許可リスト」として扱い、Knowledge / Policy 全章の他観点を見落とす
222
+
223
+ 正しい書き方:
224
+
225
+ ```markdown
226
+ # 良い例(フォーカス領域を 1 行で示し、判定基準は policy / knowledge に丸投げ)
227
+ **アーキテクチャと設計**のレビューに集中してください。
228
+ Knowledge と Policy の判定基準・検出パターン全章にしたがって変更差分をレビューしてください。
229
+ Knowledge / Policy はトリミングされる場合があります。Source Path から元ファイルの全章を確認した上で照合してください。
230
+ ```
231
+
232
+ ```markdown
233
+ # 悪い例(観点を列挙して許可リスト化)
234
+ **レビュー観点:**
235
+ - 構造・設計の妥当性
236
+ - モジュール化(高凝集・低結合・循環依存)
237
+ - コード品質
238
+ - デッドコード
239
+ - ...
240
+ ```
241
+
242
+ 並列レビューで複数の reviewer を差別化するための「フォーカス領域」は 1 行のヒントに留める。詳細な観点・基準は Knowledge / Policy に置く。
243
+
244
+ ### 共通手順の重複禁止
245
+
246
+ 複数の instruction に同一の手順ブロック(「前回指摘の追跡」「設計判断の参照」など)が転記されている場合は、共有 policy か共通ペルソナの「やること」へ集約する。同じ文言を 2 箇所以上に書かない。
212
247
 
213
248
  ### 例外: レポート参照
214
249
 
@@ -74,6 +74,8 @@ language: ja # 表示言語: ja | en
74
74
  # provider_options:
75
75
  # codex:
76
76
  # network_access: true
77
+ # opencode:
78
+ # variant: high
77
79
  # claude:
78
80
  # sandbox:
79
81
  # allow_unsandboxed_commands: true
@@ -0,0 +1,16 @@
1
+ ## 注意: このステップは fallback 実行です
2
+
3
+ 直前のステップ実行は外部要因({{fallback_reason}})で中断され、新しいセッションで再実行されています。
4
+ 前回のセッションのコンテキストは本セッションには引き継がれていません。
5
+
6
+ - 中断されたステップ: {{step_name}}
7
+ - 中断時の iteration: {{original_iteration}}
8
+ - 中断理由: {{fallback_reason_detail}}
9
+ - 切替前 provider/model: {{previous_provider}} / {{previous_model}}
10
+ - 現在の provider/model: {{current_provider}} / {{current_model}}
11
+
12
+ ファイルや成果物としてディスクに残っている前回の作業成果は参照可能ですが、チャット上の文脈は失われています。必要に応じて次の手順で文脈を補ってください。
13
+
14
+ 1. {{report_dir}} 配下の既存レポートを確認します
15
+ 2. 直前のコミットや作業ブランチの差分を確認します
16
+ 3. それでも文脈が不足する場合は、ステップ instruction に基づいて最初から実行します
@@ -1,16 +1,9 @@
1
1
  **これは {step_iteration} 回目の AI Review です。**
2
- Report Directory内のレポートを一次情報として参照してください。不足情報の補完が必要な場合に限り、Previous Responseや会話履歴を補助的に参照して構いません(Previous Responseは提供されない場合があります)。情報が競合する場合は、Report Directory内のレポートと実際のファイル内容を優先してください。
3
2
 
4
- 2回目以降は、前回の修正が実際には行われていなかったということです。
5
- **あなたの「修正済み」という認識が間違っています。**
6
-
7
- **まず認めること:**
8
- - 「修正済み」と思っていたファイルは実際には修正されていない
9
- - 前回の作業内容の認識が間違っている
10
- - ゼロベースで考え直す必要がある
3
+ Report Directory 内のレポートを一次情報として参照してください。不足情報の補完が必要な場合に限り、Previous Response や会話履歴を補助的に参照して構いません(Previous Response は提供されない場合があります)。情報が競合する場合は、Report Directory 内のレポートと実際のファイル内容を優先してください。
11
4
 
12
5
  **必須アクション:**
13
- 1. 指摘された全ファイルを Read tool で開く(思い込みを捨てて事実確認)
6
+ 1. 指摘された全ファイルを Read tool で開く
14
7
  2. 問題箇所を grep で検索して実在を確認する
15
8
  3. 確認した問題を Edit tool で修正する
16
9
  4. テストを実行して検証する
@@ -18,15 +11,10 @@ Report Directory内のレポートを一次情報として参照してくださ
18
11
 
19
12
  **報告フォーマット:**
20
13
  - NG: 「既に修正されています」
21
- - OK: 「ファイルXのL123を確認した結果、問題Yが存在したため、Zに修正しました」
22
-
23
- **絶対に禁止:**
24
- - ファイルを開かずに「修正済み」と報告
25
- - 思い込みで判断
26
- - AI Reviewer が REJECT した問題の放置
14
+ - OK: 「ファイル X L123 を確認した結果、問題 Y が存在したため、Z に修正しました」
27
15
 
28
16
  **修正不要の扱い(必須)**
29
- - AI Reviewの指摘ごとに「対象ファイルの確認結果」を示せない場合は修正不要と判断しない
17
+ - AI Review の指摘ごとに「対象ファイルの確認結果」を示せない場合は修正不要と判断しない
30
18
  - 指摘が「生成物」「仕様同期」に関係する場合は、生成元/仕様の確認ができなければ「判断できない」に対応するタグを出力する
31
19
  - 修正不要の場合は「判断できない」に対応するタグを出力し、理由と確認範囲を明記する
32
20
 
@@ -1,17 +1,11 @@
1
- **これは {step_iteration} 回目のAI Reviewです。**
1
+ **これは {step_iteration} 回目の AI Review です。**
2
2
 
3
3
  初回は網羅的にレビューし、指摘すべき問題をすべて出し切ってください。
4
- 2回目以降は、前回REJECTした項目が修正されたかの確認を優先してください。
4
+ 2回目以降は、前回 REJECT した項目が修正されたかの確認を優先してください。
5
5
 
6
- AI特有の問題についてコードをレビューしてください:
7
- - 仮定の検証
8
- - もっともらしいが間違っているパターン
9
- - 既存コードベースとの適合性
10
- - スコープクリープの検出
11
- - スコープ縮小の検出(タスク要件の取りこぼし)
6
+ AI 特有の問題のレビューを行ってください。
12
7
 
13
- ## 判定手順
14
-
15
- 1. 変更差分を確認し、AI特有の問題の観点に基づいて問題を検出する
16
- 2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
17
- 3. ブロッキング問題が1件でもあればREJECTと判定する
8
+ 手順:
9
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
10
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
11
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
@@ -42,13 +42,12 @@ Small / Medium / Large
42
42
  ```
43
43
 
44
44
  **実装完了前の自己チェック(必須):**
45
- ビルドとテストを実行する前に、以下を確認してください:
46
- - 新しいパラメータ/フィールドを追加した場合、grep で呼び出し元から実際に渡されているか確認した
47
- - `??`, `||`, `= defaultValue` を使った箇所で、フォールバックが本当に必要か確認した
48
- - リファクタリングで置き換えたコード・エクスポートが残っていないか確認した
49
- - タスク指示書にない機能を追加していないか確認した
50
- - if/else で同一関数を呼び出し、引数の差異のみになっていないか確認した
51
- - 新しいコードが既存の実装パターン(API呼び出し方式、型定義方式等)と一致しているか確認した
45
+
46
+ ビルドとテストを実行する前に、次の手順で Policy の REJECT 基準を自己点検してください。
47
+
48
+ 1. Policy の Source Path を Read ツールで開き、全文を取得する
49
+ 2. 各 `##` セクションをすべて列挙する(取捨選択しない)
50
+ 3. 列挙した各セクションの REJECT 基準と自分の実装を照合する
52
51
 
53
52
  **必須出力(見出しを含める)**
54
53
  ## 作業結果
@@ -41,13 +41,12 @@ Small / Medium / Large
41
41
  ```
42
42
 
43
43
  **実装完了前の自己チェック(必須):**
44
- ビルドとテストを実行する前に、以下を確認してください:
45
- - 新しいパラメータ/フィールドを追加した場合、grep で呼び出し元から実際に渡されているか確認した
46
- - `??`, `||`, `= defaultValue` を使った箇所で、フォールバックが本当に必要か確認した
47
- - リファクタリングで置き換えたコード・エクスポートが残っていないか確認した
48
- - タスク指示書にない機能を追加していないか確認した
49
- - if/else で同一関数を呼び出し、引数の差異のみになっていないか確認した
50
- - 新しいコードが既存の実装パターン(API呼び出し方式、型定義方式等)と一致しているか確認した
44
+
45
+ ビルドとテストを実行する前に、次の手順で Policy の REJECT 基準を自己点検してください。
46
+
47
+ 1. Policy の Source Path を Read ツールで開き、全文を取得する
48
+ 2. 各 `##` セクションをすべて列挙する(取捨選択しない)
49
+ 3. 列挙した各セクションの REJECT 基準と自分の実装を照合する
51
50
 
52
51
  **必須出力(見出しを含める)**
53
52
  ## 作業結果
@@ -1,39 +1,7 @@
1
1
  **アーキテクチャと設計**のレビューに集中してください。
2
- AI特有の問題はレビューしないでください(ai-antipattern-review-1st ステップで実施済み)。
2
+ AI 特有の問題はレビューしないでください(ai-antipattern-review-1st ステップで実施済み)。
3
3
 
4
- **レビュー観点:**
5
- - 構造・設計の妥当性
6
- - モジュール化(高凝集・低結合・循環依存)
7
- - 関数化(1関数1責務・操作の一覧性・抽象度の一致)
8
- - コード品質
9
- - 変更スコープの適切性
10
- - テストカバレッジ
11
- - デッドコード
12
- - 呼び出しチェーン検証
13
- - 契約文字列(ファイル名・設定キー名)のハードコード散在
14
-
15
-
16
- **設計判断の参照:**
17
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
18
- - 記録された意図的な判断は FP として指摘しない
19
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
20
-
21
- **前回指摘の追跡(必須):**
22
- - まず Report Directory 内で、このステップが前回までに出力したレビュー結果とそのタイムスタンプ付き履歴を確認し、無印ファイルを最新結果、直前のタイムスタンプ付きファイルを前回結果として扱う
23
- - `Previous Response` がある場合は補助情報として参照してよいが、findings の状態判定はレポート履歴を優先する
24
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved / reopened` で判定する
25
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
26
- - 前回レポートにある open findings を、今回のレポートへ欠落させない
27
-
28
- ## 判定手順
29
-
30
- 1. まず前回open findingsを抽出し、`new / persists / resolved / reopened` を仮判定する
31
- 2. 変更差分を確認し、構造・設計の観点に基づいて問題を検出する
32
- - ナレッジの判定基準テーブル(REJECT条件)と変更内容を照合する
33
- - DRY違反を見つけた場合は解消を要求する
34
- - ただし修正案を出す前に、共通化先が既存の責務境界・契約・公開APIに整合するか確認する
35
- - 新しい wrapper / helper / 公開API を求める場合は、その抽象化先が自然である根拠を示す
36
- - 指示書や plan にない追加抽象化を要求する場合は、必要性とスコープ妥当性を明示する
37
- - ビルド・テスト・動作確認を根拠に書く場合は、確認対象・確認内容・結果をレポート内に具体的に残す
38
- 3. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
39
- 4. ブロッキング問題(`new`、`persists`、または `reopened`)が1件でもあればREJECTと判定する
4
+ 手順:
5
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
6
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
7
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
@@ -1,25 +1,9 @@
1
- CQRS(コマンドクエリ責務分離)とEvent Sourcing(イベントソーシング)の観点から
2
- 変更をレビューしてください。AI特有の問題のレビューは不要です(ai-antipattern-review-1st ステップで実施済み)。
1
+ **CQRS(コマンドクエリ責務分離)と Event Sourcing(イベントソーシング)**のレビューに集中してください。
2
+ AI 特有の問題はレビューしないでください(ai-antipattern-review-1st ステップで実施済み)。
3
3
 
4
- **レビュー観点:**
5
- - Aggregate設計の妥当性
6
- - イベント設計(粒度、命名、スキーマ)
7
- - Command/Queryの分離
8
- - プロジェクション設計
9
- - 結果整合性の考慮
4
+ 手順:
5
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
6
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
7
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
10
8
 
11
- **注意**: このプロジェクトがCQRS+ESパターンを使用していない場合は、
12
- 一般的なドメイン設計の観点からレビューしてください。
13
-
14
-
15
- **設計判断の参照:**
16
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
17
- - 記録された意図的な判断は FP として指摘しない
18
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
19
-
20
- ## 判定手順
21
-
22
- 1. 変更差分を確認し、CQRS・イベントソーシングの観点に基づいて問題を検出する
23
- - ナレッジの判定基準テーブル(REJECT条件)と変更内容を照合する
24
- 2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
25
- 3. ブロッキング問題が1件でもあればREJECTと判定する
9
+ **注意:** このプロジェクトが CQRS+ES パターンを使用していない場合は、一般的なドメイン設計の観点からレビューしてください。
@@ -1,34 +1,8 @@
1
- フロントエンド開発の観点から変更をレビューしてください。
1
+ **フロントエンド開発**のレビューに集中してください。
2
2
 
3
- **レビュー観点:**
4
- - デザイン忠実度(デザイン参照が指定されている場合、最優先で確認)
5
- - コンポーネント設計(責務分離、粒度)
6
- - 状態管理(ローカル/グローバルの判断)
7
- - パフォーマンス(再レンダリング、メモ化)
8
- - アクセシビリティ(キーボード操作、ARIA)
9
- - データフェッチパターン
10
- - 利用者が機能へ到達できる配線(route、導線、起動条件)
11
- - TypeScript型安全性
3
+ 手順:
4
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
5
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
6
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
12
7
 
13
- **デザイン忠実度チェック(デザイン参照がある場合):**
14
- 1. タスク指示書の参照資料からデザイン参照を特定する
15
- 2. デザインの要素(レイアウト、文言、色、間隔)を実装と要素単位で比較する
16
- 3. 差分がある場合、決定ログで意図的かどうかを確認する
17
- 4. 意図的でない差分はブロッキング問題として報告する
18
-
19
- **注意**: このプロジェクトがフロントエンドを含まない場合は、
20
- 問題なしとして次に進んでください。
21
-
22
-
23
- **設計判断の参照:**
24
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
25
- - 記録された意図的な判断は FP として指摘しない
26
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
27
-
28
- ## 判定手順
29
-
30
- 1. 変更差分を確認し、フロントエンド開発の観点に基づいて問題を検出する
31
- - ナレッジの判定基準テーブル(REJECT条件)と変更内容を照合する
32
- - 新規の画面・機能ファイルが追加されている場合、利用者が到達する入口や呼び出し元の更新有無を確認する
33
- 2. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
34
- 3. ブロッキング問題が1件でもあればREJECTと判定する
8
+ **注意:** このプロジェクトがフロントエンドを含まない場合は、問題なしとして次に進んでください。
@@ -1,32 +1,6 @@
1
- 品質保証の観点から変更をレビューしてください。
1
+ **品質保証(テスト戦略・カバレッジ・エラーハンドリング・保守性)**のレビューに集中してください。
2
2
 
3
- **レビュー観点:**
4
- - テストカバレッジと品質
5
- - テスト戦略(単体/統合/E2E)
6
- - エラーハンドリング
7
- - ログとモニタリング
8
- - 保守性
9
-
10
-
11
- **設計判断の参照:**
12
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
13
- - 記録された意図的な判断は FP として指摘しない
14
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
15
-
16
- **前回指摘の追跡(必須):**
17
- - まず Report Directory 内で、このステップが前回までに出力したレビュー結果とそのタイムスタンプ付き履歴を確認し、無印ファイルを最新結果、直前のタイムスタンプ付きファイルを前回結果として扱う
18
- - `Previous Response` がある場合は補助情報として参照してよいが、findings の状態判定はレポート履歴を優先する
19
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved / reopened` で判定する
20
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
21
- - 前回レポートにある open findings を、今回のレポートへ欠落させない
22
-
23
- ## 判定手順
24
-
25
- 1. まず前回open findingsを抽出し、`new / persists / resolved / reopened` を仮判定する
26
- 2. 変更差分を確認し、品質保証の観点に基づいて問題を検出する
27
- - ナレッジの判定基準テーブル(REJECT条件)と変更内容を照合する
28
- - テストが通っていても、task や plan にない追加変更が妥当か確認する
29
- - レビュー起因で設計変更が膨らんでいる場合、その追加変更が本当に必要かを評価する
30
- - ビルド・テスト・動作確認を根拠に書く場合は、確認対象・確認内容・結果をレポート内に具体的に残す
31
- 3. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
32
- 4. ブロッキング問題(`new`、`persists`、または `reopened`)が1件でもあればREJECTと判定する
3
+ 手順:
4
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
5
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
6
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
@@ -1,35 +1,17 @@
1
- 要件充足の観点から変更をレビューしてください。
1
+ **要件充足**のレビューに集中してください。
2
2
 
3
- **レビュー観点:**
4
- - 要求された各要件が実装されているか
5
- - 暗黙の要求(当然期待される動作)が満たされているか
6
- - 要求にない変更(スコープクリープ)が紛れていないか
7
- - 部分実装や未実装がないか
3
+ 手順:
4
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
5
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
6
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
8
7
 
8
+ ## ステップ固有の追加手順
9
9
 
10
- **設計判断の参照:**
11
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
12
- - 記録された意図的な判断は FP として指摘しない
13
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
14
-
15
- **前回指摘の追跡(必須):**
16
- - まず Report Directory 内で、このステップが前回までに出力したレビュー結果とそのタイムスタンプ付き履歴を確認し、無印ファイルを最新結果、直前のタイムスタンプ付きファイルを前回結果として扱う
17
- - `Previous Response` がある場合は補助情報として参照してよいが、findings の状態判定はレポート履歴を優先する
18
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved / reopened` で判定する
19
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
20
- - 前回レポートにある open findings を、今回のレポートへ欠落させない
21
-
22
- ## 判定手順
23
-
24
- 1. `order.md`、関連タスク本文、`plan.md`、`coder-decisions.md` を読み、要件を1つずつ抽出する
25
- 2. 1つの文に複数条件や経路がある場合、検証可能な最小単位まで分解する
26
- - `A/B`、`global/project`、`JSON/leaf`、`allow/deny`、`read/write` を1行にまとめない
10
+ 1. `order.md`、関連タスク本文、`plan.md`、`coder-decisions.md` を読み、要件を 1 つずつ抽出する
11
+ 2. 1 つの文に複数条件や経路がある場合、検証可能な最小単位まで分解する
12
+ - `A/B`、`global/project`、`JSON/leaf`、`allow/deny`、`read/write` 1 行にまとめない
27
13
  3. 各要件について、実装されたコード(ファイル:行)を特定する
28
- 4. 各要件を `充足 / 未充足 / 未確認` のいずれかで判定する
14
+ 4. 各要件を `充足` / `未充足` / `未確認` のいずれかで判定する
29
15
  - 根拠コードがない場合は `充足` にしない
30
16
  - 一部ケースしか確認できていない場合は `充足` にしない
31
17
  5. 要求にない変更を列挙し、妥当か不要かを判定する
32
- 6. 前回 finding を `new / persists / resolved / reopened` で整理する
33
- 7. テスト・ビルド・動作確認を根拠に書く場合は、確認対象・確認内容・結果をレポート内に具体的に残す
34
- 8. 検出した問題ごとに、Policy のスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
35
- 9. ブロッキング問題(`new`、`persists`、または `reopened`)が1件でもあれば REJECT と判定する
@@ -1,39 +1,16 @@
1
- セキュリティの観点から変更をレビューしてください。以下の脆弱性をチェックしてください。
2
- - インジェクション攻撃(SQL, コマンド, XSS)
3
- - 認証・認可の不備
4
- - データ露出リスク
5
- - 暗号化の弱点
1
+ **セキュリティ**のレビューに集中してください。
6
2
 
7
- **一次情報の参照:**
8
- - `order.md` を確認し、要求と禁止事項を把握してください。
9
- - `plan.md` を確認し、意図したスコープと設計方針を把握してください。
10
- - {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
11
- - 記録された意図的な判断は、そのまま FP として退けず、`order.md`・`plan.md`・実コードに照らして妥当性を評価してください。
3
+ 手順:
4
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
5
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
6
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
12
7
 
13
- **前回指摘の追跡(必須):**
14
- - まず Report Directory 内で、このステップが前回までに出力したレビュー結果とそのタイムスタンプ付き履歴を確認し、無印ファイルを最新結果、直前のタイムスタンプ付きファイルを前回結果として扱う
15
- - `Previous Response` がある場合は補助情報として参照してよいが、findings の状態判定はレポート履歴を優先する
16
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved / reopened` で判定する
17
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
18
- - 前回レポートにある open findings を、今回のレポートへ欠落させない
8
+ ## ステップ固有の確認事項
19
9
 
20
- **重要:**
21
- - 仕様上の優先順位、拡張点、設定のオーバーライドを、それだけで脆弱性と断定しないでください。
22
- - 対話確認や警告プロンプトが消えたこと自体を、直ちにセキュリティ境界の後退とみなさないでください。
23
- - ブロッキング finding を出すには、攻撃者がどの入力を制御し、何を新たに達成できるのかを具体化してください。
24
-
25
- ## 判定手順
26
-
27
- 1. `order.md`、`plan.md`、`coder-decisions.md`、実コードを突き合わせて、変更が意図した仕様かどうかを確認する
28
- 2. 変更差分を確認し、ナレッジの判定基準テーブル(REJECT条件)と照合して問題候補を抽出する
29
- 3. 問題候補ごとに、具体的な攻撃経路を確認する
30
- - どの主体が入力や設定を制御できるか
31
- - 変更によって新しい権限、データアクセス、コード実行、プロンプト改変が可能になるか
32
- - その影響が、既存の仕様上の優先順位や拡張点の範囲を超えているか
33
- 4. 設定の優先順位、local/global の shadow、非対話指定などが関わる場合は、次を追加確認する
34
- - その挙動が `order.md` や `plan.md` で意図された仕様か
35
- - 明示的な selector や引数指定によりユーザー意図が十分に表現されているか
36
- - 低信頼側が高信頼側を上書きできること自体ではなく、信頼境界の破壊や新しい攻撃能力があるか
37
- 5. テスト・ビルド・動作確認を根拠に書く場合は、確認対象・確認内容・結果をレポート内に具体的に残す
38
- 6. 検出した問題ごとに、Policy のスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
39
- 7. ブロッキング問題が1件でもあれば REJECT と判定する
10
+ - 仕様上の優先順位、拡張点、設定のオーバーライドを、それだけで脆弱性と断定しない
11
+ - 対話確認や警告プロンプトが消えたこと自体を、直ちにセキュリティ境界の後退とみなさない
12
+ - ブロッキング finding を出すには、攻撃者がどの入力を制御し、何を新たに達成できるのかを具体化する
13
+ - 設定の優先順位、local/global shadow、非対話指定などが関わる場合は次を追加確認する
14
+ - その挙動が `order.md` や `plan.md` で意図された仕様か
15
+ - 明示的な selector や引数指定によりユーザー意図が十分に表現されているか
16
+ - 低信頼側が高信頼側を上書きできること自体ではなく、信頼境界の破壊や新しい攻撃能力があるか
@@ -1,31 +1,7 @@
1
1
  **Terraform 規約準拠**のレビューに集中してください。
2
- AI特有の問題はレビューしないでください(ai-antipattern-review-1st ステップで実施済み)。
2
+ AI 特有の問題はレビューしないでください(ai-antipattern-review-1st ステップで実施済み)。
3
3
 
4
- **レビュー観点:**
5
- - 変数宣言の規約準拠(type, description, sensitive)
6
- - リソース命名の一貫性(name_prefix パターン)
7
- - ファイル構成の規約準拠(1ファイル1関心事)
8
- - セキュリティ設定(IMDSv2, 暗号化, アクセス制御, IAM最小権限)
9
- - タグ管理(default_tags, 重複なし)
10
- - lifecycle ルールの妥当性
11
- - コストトレードオフの文書化
12
- - 未使用の variable / output / data source
13
-
14
-
15
- **設計判断の参照:**
16
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
17
- - 記録された意図的な判断は FP として指摘しない
18
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
19
-
20
- **前回指摘の追跡(必須):**
21
- - まず「Previous Response」から前回の open findings を抽出する
22
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved` で判定する
23
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
24
-
25
- ## 判定手順
26
-
27
- 1. まず前回open findingsを抽出し、`new / persists / resolved` を仮判定する
28
- 2. 変更差分を確認し、Terraform規約の観点に基づいて問題を検出する
29
- - ナレッジの判定基準テーブル(REJECT条件)と変更内容を照合する
30
- 3. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
31
- 4. ブロッキング問題(`new` または `persists`)が1件でもあればREJECTと判定する
4
+ 手順:
5
+ 1. Knowledge Policy の Source Path を Read ツールで開き、全文を取得する
6
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
7
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
@@ -1,32 +1,11 @@
1
- テスト品質の観点から変更をレビューしてください。
1
+ **テスト品質**のレビューに集中してください。
2
2
 
3
- **レビュー観点:**
4
- - テスト計画の観点がすべてカバーされているか
5
- - テスト品質(Given-When-Then構造、独立性、再現性)
6
- - テスト命名規約
7
- - 過不足(不要なテスト、足りないケース)
8
- - モック・フィクスチャの適切さ
9
- - 外部契約がある場合、request body / query / path の入力位置が契約どおりに検証されているか
10
- - レスポンス標準の envelope を request 契約へ誤って流用する実装を検出できるテストになっているか
3
+ 手順:
4
+ 1. Knowledge と Policy の Source Path を Read ツールで開き、全文を取得する
5
+ 2. それぞれの `##` セクションをすべて列挙する(取捨選択しない)
6
+ 3. 列挙した各セクションの判定基準を変更差分と照合し、該当する問題を検出する
11
7
 
8
+ ## ステップ固有の追加手順
12
9
 
13
- **設計判断の参照:**
14
- {report:coder-decisions.md} を確認し、記録された設計判断を把握してください。
15
- - 記録された意図的な判断は FP として指摘しない
16
- - ただし設計判断自体の妥当性も評価し、問題がある場合は指摘する
17
-
18
- **前回指摘の追跡(必須):**
19
- - まず Report Directory 内で、このステップが前回までに出力したレビュー結果とそのタイムスタンプ付き履歴を確認し、無印ファイルを最新結果、直前のタイムスタンプ付きファイルを前回結果として扱う
20
- - `Previous Response` がある場合は補助情報として参照してよいが、findings の状態判定はレポート履歴を優先する
21
- - 各 finding に `finding_id` を付け、今回の状態を `new / persists / resolved / reopened` で判定する
22
- - `persists` と判定する場合は、未解決である根拠(ファイル/行)を必ず示す
23
- - 前回レポートにある open findings を、今回のレポートへ欠落させない
24
-
25
- ## 判定手順
26
-
27
- 1. まず前回 open findings をレポート履歴から抽出し、`new / persists / resolved / reopened` を仮判定する
28
- 2. Report Directory内のテスト計画・テストスコープに関するレポートと実装されたテストを突合する
29
- 3. テスト・ビルド・動作確認を根拠に書く場合は、確認対象・確認内容・結果をレポート内に具体的に残す
30
- 4. 検出した問題ごとに、Policyのスコープ判定表と判定ルールに基づいてブロッキング/非ブロッキングを分類する
31
- 5. ブロッキング問題が1件でもあればREJECTと判定する
32
- 6. 外部契約があるのに入力位置(root body / query / path)の検証が欠けていれば、原則としてカバレッジ不足として扱う
10
+ 1. Report Directory 内のテスト計画・テストスコープに関するレポートと実装されたテストを突合する
11
+ 2. 外部契約があるのに入力位置(root body / query / path)の検証が欠けている場合、カバレッジ不足として扱う