takt 0.47.0 → 0.48.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 (226) hide show
  1. package/README.md +11 -0
  2. package/builtins/en/facets/instructions/fix-maintenance.md +1 -1
  3. package/builtins/en/facets/instructions/implement-maintenance.md +2 -2
  4. package/builtins/en/facets/instructions/plan-maintenance.md +3 -3
  5. package/builtins/en/facets/instructions/review-coding.md +6 -4
  6. package/builtins/en/facets/instructions/review-test.md +6 -1
  7. package/builtins/en/facets/knowledge/backend.md +2 -0
  8. package/builtins/en/facets/knowledge/cqrs-es.md +12 -0
  9. package/builtins/en/facets/knowledge/e2e-testing.md +13 -0
  10. package/builtins/en/facets/knowledge/existing-system.md +2 -2
  11. package/builtins/en/facets/knowledge/takt.md +11 -0
  12. package/builtins/en/facets/policies/existing-system-respect.md +17 -16
  13. package/builtins/en/facets/policies/testing.md +28 -0
  14. package/builtins/en/workflow-categories.yaml +1 -0
  15. package/builtins/en/workflows/backend-maintenance.yaml +540 -0
  16. package/builtins/en/workflows/draft.yaml +3 -1
  17. package/builtins/en/workflows/frontend-maintenance.yaml +1 -1
  18. package/builtins/en/workflows/frontend.yaml +1 -1
  19. package/builtins/ja/facets/instructions/fix-maintenance.md +1 -1
  20. package/builtins/ja/facets/instructions/implement-maintenance.md +2 -2
  21. package/builtins/ja/facets/instructions/plan-maintenance.md +3 -3
  22. package/builtins/ja/facets/instructions/review-coding.md +6 -4
  23. package/builtins/ja/facets/instructions/review-test.md +6 -1
  24. package/builtins/ja/facets/knowledge/backend.md +2 -0
  25. package/builtins/ja/facets/knowledge/cqrs-es.md +12 -0
  26. package/builtins/ja/facets/knowledge/e2e-testing.md +13 -0
  27. package/builtins/ja/facets/knowledge/existing-system.md +2 -2
  28. package/builtins/ja/facets/knowledge/takt.md +11 -0
  29. package/builtins/ja/facets/policies/existing-system-respect.md +17 -16
  30. package/builtins/ja/facets/policies/testing.md +28 -0
  31. package/builtins/ja/workflow-categories.yaml +1 -0
  32. package/builtins/ja/workflows/backend-maintenance.yaml +540 -0
  33. package/builtins/ja/workflows/draft.yaml +3 -1
  34. package/builtins/ja/workflows/frontend-maintenance.yaml +1 -1
  35. package/builtins/ja/workflows/frontend.yaml +1 -1
  36. package/dist/agents/decompose-task-usecase.d.ts +3 -1
  37. package/dist/agents/decompose-task-usecase.d.ts.map +1 -1
  38. package/dist/agents/decompose-task-usecase.js +2 -2
  39. package/dist/agents/decompose-task-usecase.js.map +1 -1
  40. package/dist/agents/runner.js +4 -4
  41. package/dist/agents/runner.js.map +1 -1
  42. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts +2 -2
  43. package/dist/agents/structured-caller/capability-aware-structured-caller.d.ts.map +1 -1
  44. package/dist/agents/structured-caller/capability-aware-structured-caller.js.map +1 -1
  45. package/dist/agents/structured-caller/contracts.d.ts +2 -2
  46. package/dist/agents/structured-caller/contracts.d.ts.map +1 -1
  47. package/dist/agents/structured-caller/default-structured-caller.d.ts +2 -2
  48. package/dist/agents/structured-caller/default-structured-caller.d.ts.map +1 -1
  49. package/dist/agents/structured-caller/default-structured-caller.js.map +1 -1
  50. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts +2 -2
  51. package/dist/agents/structured-caller/prompt-based-structured-caller.d.ts.map +1 -1
  52. package/dist/agents/structured-caller/prompt-based-structured-caller.js +2 -2
  53. package/dist/agents/structured-caller/prompt-based-structured-caller.js.map +1 -1
  54. package/dist/agents/team-leader-structured-output.d.ts +2 -2
  55. package/dist/agents/team-leader-structured-output.d.ts.map +1 -1
  56. package/dist/agents/team-leader-structured-output.js +42 -9
  57. package/dist/agents/team-leader-structured-output.js.map +1 -1
  58. package/dist/commands/repertoire/add.d.ts.map +1 -1
  59. package/dist/commands/repertoire/add.js +2 -3
  60. package/dist/commands/repertoire/add.js.map +1 -1
  61. package/dist/core/models/config-schemas.d.ts +26 -0
  62. package/dist/core/models/config-schemas.d.ts.map +1 -1
  63. package/dist/core/models/part.d.ts +7 -0
  64. package/dist/core/models/part.d.ts.map +1 -1
  65. package/dist/core/models/schema-base.d.ts +10 -0
  66. package/dist/core/models/schema-base.d.ts.map +1 -1
  67. package/dist/core/models/schema-base.js +2 -0
  68. package/dist/core/models/schema-base.js.map +1 -1
  69. package/dist/core/models/workflow-provider-options.d.ts +2 -0
  70. package/dist/core/models/workflow-provider-options.d.ts.map +1 -1
  71. package/dist/core/models/workflow-provider-options.js.map +1 -1
  72. package/dist/core/models/workflow-schemas.d.ts +66 -0
  73. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  74. package/dist/core/models/workflow-schemas.js +2 -0
  75. package/dist/core/models/workflow-schemas.js.map +1 -1
  76. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  77. package/dist/core/workflow/engine/TeamLeaderRunner.js +6 -6
  78. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  79. package/dist/core/workflow/engine/engine-provider-options.d.ts +1 -0
  80. package/dist/core/workflow/engine/engine-provider-options.d.ts.map +1 -1
  81. package/dist/core/workflow/engine/engine-provider-options.js +27 -0
  82. package/dist/core/workflow/engine/engine-provider-options.js.map +1 -1
  83. package/dist/core/workflow/engine/team-leader-common.d.ts +1 -0
  84. package/dist/core/workflow/engine/team-leader-common.d.ts.map +1 -1
  85. package/dist/core/workflow/engine/team-leader-common.js +13 -1
  86. package/dist/core/workflow/engine/team-leader-common.js.map +1 -1
  87. package/dist/core/workflow/observability/workflowSpans.d.ts.map +1 -1
  88. package/dist/core/workflow/observability/workflowSpans.js +2 -1
  89. package/dist/core/workflow/observability/workflowSpans.js.map +1 -1
  90. package/dist/core/workflow/promotion/promotion-runtime.d.ts.map +1 -1
  91. package/dist/core/workflow/promotion/promotion-runtime.js +3 -2
  92. package/dist/core/workflow/promotion/promotion-runtime.js.map +1 -1
  93. package/dist/core/workflow/providerOptionsRedaction.d.ts +4 -0
  94. package/dist/core/workflow/providerOptionsRedaction.d.ts.map +1 -0
  95. package/dist/core/workflow/providerOptionsRedaction.js +18 -0
  96. package/dist/core/workflow/providerOptionsRedaction.js.map +1 -0
  97. package/dist/features/interactive/clipboardImage.js +2 -2
  98. package/dist/features/interactive/clipboardImage.js.map +1 -1
  99. package/dist/features/tasks/execute/sessionLoggerRecordFactory.d.ts.map +1 -1
  100. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js +2 -1
  101. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js.map +1 -1
  102. package/dist/features/tasks/execute/workflowExecutionBootstrap.d.ts.map +1 -1
  103. package/dist/features/tasks/execute/workflowExecutionBootstrap.js +4 -0
  104. package/dist/features/tasks/execute/workflowExecutionBootstrap.js.map +1 -1
  105. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  106. package/dist/features/tasks/execute/workflowExecutionEvents.js +9 -0
  107. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  108. package/dist/infra/claude/client.d.ts.map +1 -1
  109. package/dist/infra/claude/client.js +1 -0
  110. package/dist/infra/claude/client.js.map +1 -1
  111. package/dist/infra/claude/mcp-config.d.ts.map +1 -1
  112. package/dist/infra/claude/mcp-config.js +2 -2
  113. package/dist/infra/claude/mcp-config.js.map +1 -1
  114. package/dist/infra/claude/options-builder.d.ts.map +1 -1
  115. package/dist/infra/claude/options-builder.js +3 -0
  116. package/dist/infra/claude/options-builder.js.map +1 -1
  117. package/dist/infra/claude/types.d.ts +4 -0
  118. package/dist/infra/claude/types.d.ts.map +1 -1
  119. package/dist/infra/claude-headless/headless-spawn.d.ts.map +1 -1
  120. package/dist/infra/claude-headless/headless-spawn.js +3 -0
  121. package/dist/infra/claude-headless/headless-spawn.js.map +1 -1
  122. package/dist/infra/claude-headless/types.d.ts +2 -0
  123. package/dist/infra/claude-headless/types.d.ts.map +1 -1
  124. package/dist/infra/codex/client.d.ts.map +1 -1
  125. package/dist/infra/codex/client.js +1 -0
  126. package/dist/infra/codex/client.js.map +1 -1
  127. package/dist/infra/codex/types.d.ts +2 -0
  128. package/dist/infra/codex/types.d.ts.map +1 -1
  129. package/dist/infra/config/configNormalizers.d.ts +3 -2
  130. package/dist/infra/config/configNormalizers.d.ts.map +1 -1
  131. package/dist/infra/config/configNormalizers.js +19 -9
  132. package/dist/infra/config/configNormalizers.js.map +1 -1
  133. package/dist/infra/config/global/globalConfigCore.d.ts.map +1 -1
  134. package/dist/infra/config/global/globalConfigCore.js +2 -1
  135. package/dist/infra/config/global/globalConfigCore.js.map +1 -1
  136. package/dist/infra/config/loaders/workflowPreview.d.ts.map +1 -1
  137. package/dist/infra/config/loaders/workflowPreview.js +21 -9
  138. package/dist/infra/config/loaders/workflowPreview.js.map +1 -1
  139. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js +8 -2
  140. package/dist/infra/config/loaders/workflowProviderOptionsResolver.js.map +1 -1
  141. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
  142. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js +32 -1
  143. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
  144. package/dist/infra/config/project/projectConfig.d.ts.map +1 -1
  145. package/dist/infra/config/project/projectConfig.js +12 -4
  146. package/dist/infra/config/project/projectConfig.js.map +1 -1
  147. package/dist/infra/config/providerOptions.d.ts +12 -5
  148. package/dist/infra/config/providerOptions.d.ts.map +1 -1
  149. package/dist/infra/config/providerOptions.js +112 -10
  150. package/dist/infra/config/providerOptions.js.map +1 -1
  151. package/dist/infra/config/providerOptionsContract.d.ts +4 -3
  152. package/dist/infra/config/providerOptionsContract.d.ts.map +1 -1
  153. package/dist/infra/config/providerOptionsContract.js +11 -0
  154. package/dist/infra/config/providerOptionsContract.js.map +1 -1
  155. package/dist/infra/config/providerReference.d.ts +3 -2
  156. package/dist/infra/config/providerReference.d.ts.map +1 -1
  157. package/dist/infra/config/providerReference.js +6 -6
  158. package/dist/infra/config/providerReference.js.map +1 -1
  159. package/dist/infra/config/resolveConfigValue.d.ts.map +1 -1
  160. package/dist/infra/config/resolveConfigValue.js +95 -25
  161. package/dist/infra/config/resolveConfigValue.js.map +1 -1
  162. package/dist/infra/config/traced/tracedConfigLoader.d.ts +3 -2
  163. package/dist/infra/config/traced/tracedConfigLoader.d.ts.map +1 -1
  164. package/dist/infra/config/traced/tracedConfigLoader.js +28 -4
  165. package/dist/infra/config/traced/tracedConfigLoader.js.map +1 -1
  166. package/dist/infra/config/traced/tracedConfigRuntimeBridge.d.ts.map +1 -1
  167. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js +2 -2
  168. package/dist/infra/config/traced/tracedConfigRuntimeBridge.js.map +1 -1
  169. package/dist/infra/copilot/client.d.ts.map +1 -1
  170. package/dist/infra/copilot/client.js +3 -3
  171. package/dist/infra/copilot/client.js.map +1 -1
  172. package/dist/infra/providers/claude-headless.d.ts +1 -1
  173. package/dist/infra/providers/claude-headless.d.ts.map +1 -1
  174. package/dist/infra/providers/claude-headless.js +2 -1
  175. package/dist/infra/providers/claude-headless.js.map +1 -1
  176. package/dist/infra/providers/claude-terminal.d.ts +1 -1
  177. package/dist/infra/providers/claude-terminal.d.ts.map +1 -1
  178. package/dist/infra/providers/claude-terminal.js +1 -1
  179. package/dist/infra/providers/claude-terminal.js.map +1 -1
  180. package/dist/infra/providers/claude.d.ts +1 -1
  181. package/dist/infra/providers/claude.d.ts.map +1 -1
  182. package/dist/infra/providers/claude.js +2 -1
  183. package/dist/infra/providers/claude.js.map +1 -1
  184. package/dist/infra/providers/codex.d.ts +1 -1
  185. package/dist/infra/providers/codex.d.ts.map +1 -1
  186. package/dist/infra/providers/codex.js +2 -1
  187. package/dist/infra/providers/codex.js.map +1 -1
  188. package/dist/infra/providers/copilot.d.ts +1 -1
  189. package/dist/infra/providers/copilot.d.ts.map +1 -1
  190. package/dist/infra/providers/copilot.js +1 -1
  191. package/dist/infra/providers/copilot.js.map +1 -1
  192. package/dist/infra/providers/cursor.d.ts +1 -1
  193. package/dist/infra/providers/cursor.d.ts.map +1 -1
  194. package/dist/infra/providers/cursor.js +1 -1
  195. package/dist/infra/providers/cursor.js.map +1 -1
  196. package/dist/infra/providers/kiro.d.ts +1 -1
  197. package/dist/infra/providers/kiro.d.ts.map +1 -1
  198. package/dist/infra/providers/kiro.js +1 -1
  199. package/dist/infra/providers/kiro.js.map +1 -1
  200. package/dist/infra/providers/mock.d.ts +1 -1
  201. package/dist/infra/providers/mock.d.ts.map +1 -1
  202. package/dist/infra/providers/mock.js +1 -1
  203. package/dist/infra/providers/mock.js.map +1 -1
  204. package/dist/infra/providers/opencode.d.ts +1 -1
  205. package/dist/infra/providers/opencode.d.ts.map +1 -1
  206. package/dist/infra/providers/opencode.js +4 -1
  207. package/dist/infra/providers/opencode.js.map +1 -1
  208. package/dist/infra/providers/types.d.ts +1 -1
  209. package/dist/infra/providers/types.d.ts.map +1 -1
  210. package/dist/infra/task/projectLocalTaktSync.d.ts +1 -0
  211. package/dist/infra/task/projectLocalTaktSync.d.ts.map +1 -1
  212. package/dist/infra/task/projectLocalTaktSync.js +40 -0
  213. package/dist/infra/task/projectLocalTaktSync.js.map +1 -1
  214. package/dist/shared/team-leader-inspect-tools.d.ts +5 -0
  215. package/dist/shared/team-leader-inspect-tools.d.ts.map +1 -0
  216. package/dist/shared/team-leader-inspect-tools.js +8 -0
  217. package/dist/shared/team-leader-inspect-tools.js.map +1 -0
  218. package/dist/shared/utils/index.d.ts +1 -0
  219. package/dist/shared/utils/index.d.ts.map +1 -1
  220. package/dist/shared/utils/index.js +1 -0
  221. package/dist/shared/utils/index.js.map +1 -1
  222. package/dist/shared/utils/tmpdir.d.ts +2 -0
  223. package/dist/shared/utils/tmpdir.d.ts.map +1 -0
  224. package/dist/shared/utils/tmpdir.js +8 -0
  225. package/dist/shared/utils/tmpdir.js.map +1 -0
  226. package/package.json +10 -5
@@ -0,0 +1,540 @@
1
+ name: backend-maintenance
2
+ description: Strict backend maintenance workflow for existing production systems
3
+ workflow_config:
4
+ provider_options:
5
+ codex:
6
+ network_access: true
7
+ opencode:
8
+ network_access: true
9
+ max_steps: 60
10
+ initial_step: plan
11
+ loop_monitors:
12
+ - cycle:
13
+ - ai-antipattern-review-1st
14
+ - ai-antipattern-fix
15
+ threshold: 3
16
+ judge:
17
+ persona: supervisor
18
+ instruction: loop-monitor-ai-antipattern-fix
19
+ rules:
20
+ - condition: Healthy (making progress)
21
+ next: ai-antipattern-review-1st
22
+ - condition: Unproductive (no improvement)
23
+ next: reviewers_1
24
+ - cycle:
25
+ - reviewers_1
26
+ - fix
27
+ threshold: 3
28
+ judge:
29
+ persona: supervisor
30
+ instruction: loop-monitor-reviewers-fix
31
+ rules:
32
+ - condition: converging (findings decreasing, fixes applied)
33
+ next: reviewers_1
34
+ - condition: unproductive (same findings repeating)
35
+ next: supervise
36
+ steps:
37
+ - name: plan
38
+ tags:
39
+ - plan
40
+ edit: false
41
+ persona: planner
42
+ policy:
43
+ - existing-system-respect
44
+ knowledge:
45
+ - backend
46
+ - architecture
47
+ - existing-system
48
+ provider_options:
49
+ claude:
50
+ allowed_tools:
51
+ - Read
52
+ - Glob
53
+ - Grep
54
+ - Bash
55
+ - WebSearch
56
+ - WebFetch
57
+ instruction: plan-maintenance
58
+ rules:
59
+ - condition: Task analysis and planning is complete
60
+ next: write_tests
61
+ - condition: Requirements are unclear and planning cannot proceed
62
+ next: ABORT
63
+ output_contracts:
64
+ report:
65
+ - name: plan.md
66
+ format: plan
67
+ - name: write_tests
68
+ tags:
69
+ - coding
70
+ edit: true
71
+ persona: coder
72
+ policy:
73
+ - coding
74
+ - testing
75
+ - existing-system-respect
76
+ knowledge:
77
+ - backend
78
+ - architecture
79
+ - unit-testing
80
+ - e2e-testing
81
+ - existing-system
82
+ provider_options:
83
+ claude:
84
+ allowed_tools:
85
+ - Read
86
+ - Glob
87
+ - Grep
88
+ - Edit
89
+ - Write
90
+ - Bash
91
+ - WebSearch
92
+ - WebFetch
93
+ required_permission_mode: edit
94
+ instruction: write-tests-maintenance
95
+ rules:
96
+ - condition: Test creation is complete
97
+ next: implement
98
+ - condition: Skipping test creation as target is not yet implemented
99
+ next: implement
100
+ - condition: Cannot proceed with test creation
101
+ next: plan
102
+ - condition: User input required for clarification
103
+ next: write_tests
104
+ requires_user_input: true
105
+ interactive_only: true
106
+ output_contracts:
107
+ report:
108
+ - name: test-report.md
109
+ format: test-report
110
+ - name: implement
111
+ tags:
112
+ - coding
113
+ edit: true
114
+ persona: coder
115
+ policy:
116
+ - coding
117
+ - testing
118
+ - existing-system-respect
119
+ session: refresh
120
+ knowledge:
121
+ - backend
122
+ - security
123
+ - architecture
124
+ - existing-system
125
+ provider_options:
126
+ claude:
127
+ allowed_tools:
128
+ - Read
129
+ - Glob
130
+ - Grep
131
+ - Edit
132
+ - Write
133
+ - Bash
134
+ - WebSearch
135
+ - WebFetch
136
+ instruction: implement-maintenance
137
+ rules:
138
+ - condition: Implementation is complete
139
+ next: ai-antipattern-review-1st
140
+ - condition: No implementation (report only)
141
+ next: ai-antipattern-review-1st
142
+ - condition: Cannot proceed with implementation
143
+ next: ai-antipattern-review-1st
144
+ - condition: User input required
145
+ next: implement
146
+ requires_user_input: true
147
+ interactive_only: true
148
+ output_contracts:
149
+ report:
150
+ - name: maintenance-scope.md
151
+ format: maintenance-scope
152
+ - name: coder-decisions.md
153
+ format: coder-decisions
154
+ - name: ai-antipattern-review-1st
155
+ tags:
156
+ - review
157
+ edit: false
158
+ persona: ai-antipattern-reviewer
159
+ policy:
160
+ - review
161
+ - ai-antipattern
162
+ - existing-system-respect
163
+ knowledge:
164
+ - existing-system
165
+ provider_options:
166
+ claude:
167
+ allowed_tools:
168
+ - Read
169
+ - Glob
170
+ - Grep
171
+ - WebSearch
172
+ - WebFetch
173
+ instruction: ai-antipattern-review
174
+ rules:
175
+ - condition: No AI-specific issues found
176
+ next: reviewers_1
177
+ - condition: AI-specific issues detected
178
+ next: ai-antipattern-fix
179
+ output_contracts:
180
+ report:
181
+ - name: ai-antipattern-review.md
182
+ format: ai-antipattern-review
183
+ - name: ai-antipattern-fix
184
+ tags:
185
+ - coding
186
+ edit: true
187
+ persona: coder
188
+ policy:
189
+ - coding
190
+ - testing
191
+ - existing-system-respect
192
+ session: refresh
193
+ knowledge:
194
+ - backend
195
+ - security
196
+ - architecture
197
+ - existing-system
198
+ provider_options:
199
+ claude:
200
+ allowed_tools:
201
+ - Read
202
+ - Glob
203
+ - Grep
204
+ - Edit
205
+ - Write
206
+ - Bash
207
+ - WebSearch
208
+ - WebFetch
209
+ instruction: ai-antipattern-fix
210
+ pass_previous_response: false
211
+ rules:
212
+ - condition: AI Reviewer's issues have been fixed
213
+ next: ai-antipattern-review-1st
214
+ - condition: No fix needed (verified target files/spec)
215
+ next: ai-antipattern-no-fix
216
+ - condition: Unable to proceed with fixes
217
+ next: ai-antipattern-no-fix
218
+ - name: ai-antipattern-no-fix
219
+ tags:
220
+ - review
221
+ edit: false
222
+ persona: architecture-reviewer
223
+ policy:
224
+ - review
225
+ - existing-system-respect
226
+ knowledge:
227
+ - existing-system
228
+ provider_options:
229
+ claude:
230
+ allowed_tools:
231
+ - Read
232
+ - Glob
233
+ - Grep
234
+ rules:
235
+ - condition: ai-antipattern-review-1st's findings are valid (fix required)
236
+ next: ai-antipattern-fix
237
+ - condition: ai-antipattern-fix's judgment is valid (no fix needed)
238
+ next: reviewers_1
239
+ instruction: arbitrate
240
+ - name: reviewers_1
241
+ tags:
242
+ - review
243
+ parallel:
244
+ - name: arch-review
245
+ tags:
246
+ - review
247
+ edit: false
248
+ persona: architecture-reviewer
249
+ policy:
250
+ - review
251
+ - existing-system-respect
252
+ knowledge:
253
+ - architecture
254
+ - backend
255
+ - existing-system
256
+ provider_options:
257
+ claude:
258
+ allowed_tools:
259
+ - Read
260
+ - Glob
261
+ - Grep
262
+ - WebSearch
263
+ - WebFetch
264
+ rules:
265
+ - condition: approved
266
+ - condition: needs_fix
267
+ instruction: review-arch
268
+ output_contracts:
269
+ report:
270
+ - name: architect-review.md
271
+ format: architecture-review
272
+ - name: testing-review
273
+ tags:
274
+ - review
275
+ edit: false
276
+ persona: testing-reviewer
277
+ policy:
278
+ - review
279
+ - testing
280
+ - existing-system-respect
281
+ knowledge:
282
+ - unit-testing
283
+ - e2e-testing
284
+ - existing-system
285
+ provider_options:
286
+ claude:
287
+ allowed_tools:
288
+ - Read
289
+ - Glob
290
+ - Grep
291
+ - WebSearch
292
+ - WebFetch
293
+ rules:
294
+ - condition: approved
295
+ - condition: needs_fix
296
+ instruction: review-test
297
+ output_contracts:
298
+ report:
299
+ - name: testing-review.md
300
+ format: testing-review
301
+ - name: ai-antipattern-review-2nd
302
+ tags:
303
+ - review
304
+ edit: false
305
+ persona: ai-antipattern-reviewer
306
+ policy:
307
+ - review
308
+ - ai-antipattern
309
+ - existing-system-respect
310
+ knowledge:
311
+ - existing-system
312
+ provider_options:
313
+ claude:
314
+ allowed_tools:
315
+ - Read
316
+ - Glob
317
+ - Grep
318
+ - WebSearch
319
+ - WebFetch
320
+ instruction: ai-antipattern-review
321
+ rules:
322
+ - condition: approved
323
+ - condition: needs_fix
324
+ output_contracts:
325
+ report:
326
+ - name: ai-antipattern-review.md
327
+ format: ai-antipattern-review
328
+ rules:
329
+ - condition: all("approved")
330
+ next: reviewers_2
331
+ - condition: any("needs_fix")
332
+ next: fix
333
+ - name: reviewers_2
334
+ tags:
335
+ - review
336
+ parallel:
337
+ - name: security-review
338
+ tags:
339
+ - review
340
+ edit: false
341
+ persona: security-reviewer
342
+ policy:
343
+ - review
344
+ - existing-system-respect
345
+ knowledge:
346
+ - security
347
+ - existing-system
348
+ provider_options:
349
+ claude:
350
+ allowed_tools:
351
+ - Read
352
+ - Glob
353
+ - Grep
354
+ - WebSearch
355
+ - WebFetch
356
+ rules:
357
+ - condition: approved
358
+ - condition: needs_fix
359
+ instruction: review-security
360
+ output_contracts:
361
+ report:
362
+ - name: security-review.md
363
+ format: security-review
364
+ - name: qa-review
365
+ tags:
366
+ - review
367
+ edit: false
368
+ persona: qa-reviewer
369
+ policy:
370
+ - review
371
+ - qa
372
+ - existing-system-respect
373
+ knowledge:
374
+ - existing-system
375
+ provider_options:
376
+ claude:
377
+ allowed_tools:
378
+ - Read
379
+ - Glob
380
+ - Grep
381
+ - WebSearch
382
+ - WebFetch
383
+ rules:
384
+ - condition: approved
385
+ - condition: needs_fix
386
+ instruction: review-qa
387
+ output_contracts:
388
+ report:
389
+ - name: qa-review.md
390
+ format: qa-review
391
+ - name: pure-review
392
+ tags:
393
+ - review
394
+ edit: false
395
+ persona: pure-reviewer
396
+ policy: review
397
+ provider_options:
398
+ claude:
399
+ allowed_tools:
400
+ - Read
401
+ - Glob
402
+ - Grep
403
+ - Bash
404
+ - WebSearch
405
+ - WebFetch
406
+ rules:
407
+ - condition: approved
408
+ - condition: needs_fix
409
+ instruction: review-pure
410
+ output_contracts:
411
+ report:
412
+ - name: pure-review.md
413
+ format: pure-review
414
+ - name: coding-review
415
+ tags:
416
+ - review
417
+ edit: false
418
+ persona: coding-reviewer
419
+ policy:
420
+ - review
421
+ - coding
422
+ provider_options:
423
+ claude:
424
+ allowed_tools:
425
+ - Read
426
+ - Glob
427
+ - Grep
428
+ - Bash
429
+ - WebSearch
430
+ - WebFetch
431
+ instruction: review-coding
432
+ output_contracts:
433
+ report:
434
+ - name: coding-review.md
435
+ format: coding-review
436
+ rules:
437
+ - condition: approved
438
+ - condition: needs_fix
439
+ rules:
440
+ - condition: all("approved")
441
+ next: supervise
442
+ - condition: any("needs_fix")
443
+ next: fix
444
+ - name: fix
445
+ tags:
446
+ - coding
447
+ edit: true
448
+ persona: coder
449
+ policy:
450
+ - coding
451
+ - testing
452
+ - existing-system-respect
453
+ knowledge:
454
+ - backend
455
+ - security
456
+ - architecture
457
+ - existing-system
458
+ provider_options:
459
+ claude:
460
+ allowed_tools:
461
+ - Read
462
+ - Glob
463
+ - Grep
464
+ - Edit
465
+ - Write
466
+ - Bash
467
+ - WebSearch
468
+ - WebFetch
469
+ required_permission_mode: edit
470
+ pass_previous_response: false
471
+ rules:
472
+ - condition: Fix complete
473
+ next: reviewers_1
474
+ - condition: Cannot proceed, insufficient info
475
+ next: plan
476
+ instruction: fix-maintenance
477
+ - name: supervise
478
+ tags:
479
+ - review
480
+ edit: false
481
+ persona: dual-supervisor
482
+ policy:
483
+ - review
484
+ - existing-system-respect
485
+ knowledge:
486
+ - existing-system
487
+ provider_options:
488
+ claude:
489
+ allowed_tools:
490
+ - Read
491
+ - Glob
492
+ - Grep
493
+ - WebSearch
494
+ - WebFetch
495
+ instruction: supervise-maintenance
496
+ pass_previous_response: false
497
+ rules:
498
+ - condition: All validations pass and ready to merge
499
+ next: COMPLETE
500
+ - condition: Issues detected during final review
501
+ next: fix_supervisor
502
+ output_contracts:
503
+ report:
504
+ - name: supervisor-validation.md
505
+ format: supervisor-validation
506
+ - name: summary.md
507
+ format: summary
508
+ use_judge: false
509
+ - name: fix_supervisor
510
+ tags:
511
+ - coding
512
+ edit: true
513
+ persona: coder
514
+ policy:
515
+ - coding
516
+ - testing
517
+ - existing-system-respect
518
+ knowledge:
519
+ - backend
520
+ - security
521
+ - architecture
522
+ - existing-system
523
+ provider_options:
524
+ claude:
525
+ allowed_tools:
526
+ - Read
527
+ - Glob
528
+ - Grep
529
+ - Edit
530
+ - Write
531
+ - Bash
532
+ - WebSearch
533
+ - WebFetch
534
+ instruction: fix-maintenance
535
+ pass_previous_response: false
536
+ rules:
537
+ - condition: Supervisor's issues have been fixed
538
+ next: supervise
539
+ - condition: Unable to proceed with fixes
540
+ next: plan
@@ -43,7 +43,7 @@ loop_monitors:
43
43
  steps:
44
44
  - name: implement
45
45
  tags:
46
- - coding
46
+ - leader
47
47
  edit: true
48
48
  persona: coder
49
49
  policy:
@@ -57,6 +57,8 @@ steps:
57
57
  required_permission_mode: edit
58
58
  team_leader:
59
59
  max_parts: 2
60
+ part_tags:
61
+ - coding
60
62
  part_persona: coder
61
63
  part_edit: true
62
64
  part_permission_mode: edit
@@ -6,7 +6,7 @@ workflow_config:
6
6
  network_access: true
7
7
  opencode:
8
8
  network_access: true
9
- max_steps: 30
9
+ max_steps: 60
10
10
  initial_step: plan
11
11
  loop_monitors:
12
12
  - cycle:
@@ -6,7 +6,7 @@ workflow_config:
6
6
  network_access: true
7
7
  opencode:
8
8
  network_access: true
9
- max_steps: 30
9
+ max_steps: 60
10
10
  initial_step: plan
11
11
  loop_monitors:
12
12
  - cycle:
@@ -1,4 +1,4 @@
1
- Report Directory内のレビューレポートを確認し、指摘事項を既存契約を保つ最小差分で修正してください。
1
+ Report Directory内のレビューレポートを確認し、指摘事項を既存契約を保ちつつ、要求と因果関係のある範囲で修正してください。
2
2
 
3
3
  **修正の原則:**
4
4
  - 指摘の「修正案」が示されている場合はそれに沿った対応を優先し、独自の迂回策を取らない
@@ -1,4 +1,4 @@
1
- 計画に従い、既存契約を保った最小差分で実装してください。
1
+ 計画に従い、既存契約を保ちつつ、要求と因果関係のある範囲で実装してください。
2
2
  Workflow Contextに示されたReport Directory内のファイルのみ参照してください。他のレポートディレクトリは検索/参照しないでください。
3
3
  Report Directory内のレポートを一次情報として参照してください。不足情報の補完が必要な場合に限り、Previous Responseや会話履歴を補助的に参照して構いません(Previous Responseは提供されない場合があります)。情報が競合する場合は、Report Directory内のレポートと実際のファイル内容を優先してください。
4
4
 
@@ -14,7 +14,7 @@ Report Directory内のレポートを一次情報として参照してくださ
14
14
  - 実装前に差分予定を「必須変更」「関連変更」「不要変更」に分類する
15
15
  - 必須変更と関連変更だけを実装する
16
16
  - 変更ファイル内という理由だけで、作法改善、改名、ファイル移動、hook戻り値変更、コメント削除、テスト期待値変更を行わない
17
- - 既存構造で要求を満たせる場合は、より一般的な作法へ寄せるためだけの構造変更をしない
17
+ - 要求と因果関係のない構造変更をしない
18
18
  - 仕様変更で廃止された旧設計について、旧仕様の不在確認だけのコード・テストを残さない
19
19
  - 実装後に全差分を確認し、不要変更を戻す
20
20
 
@@ -1,4 +1,4 @@
1
- 既存フロントエンド機能の保守変更としてタスクを分析し、設計を含めた最小差分の実装方針を立ててください。
1
+ 既存機能の保守変更としてタスクを分析し、設計を含めた因果差分の実装方針を立ててください。
2
2
 
3
3
  **注意:** Previous Responseがある場合は差し戻しのため、その内容と現在のファイル内容を照合して計画を見直してください(replan)。
4
4
 
@@ -29,7 +29,7 @@
29
29
  - 変更ファイル内、近い責務、一般作法という理由だけでは関連変更にしない
30
30
  - 不要変更は Coder に実装させない
31
31
  6. ファイル構成・設計パターンを決定する(必要な場合)
32
- - 既存構造で要求を満たせる場合は、理想的でなくても既存構造を優先する
32
+ - 要求と因果関係のない範囲では、理想的でなくても既存構造を優先する
33
33
  7. 実装アプローチを決める
34
34
  - 実装アプローチがナレッジ・ポリシーの制約に違反しないか照合する
35
35
  - 利用者向け機能の追加や変更がある場合、利用者がその機能へ到達する条件・入口・起動経路を固定する
@@ -48,4 +48,4 @@
48
48
  ## 既存契約
49
49
  - {守るべき既存契約}
50
50
  ## 実装方針
51
- - {最小差分の方針}
51
+ - {因果差分の方針}
@@ -8,7 +8,9 @@
8
8
  5. 共通ヘルパー、正規化関数、builder、adapter の追加・変更がある場合、既存の同種分岐にも同じ契約が適用されているか確認する
9
9
  6. 型、スキーマ、validator、resolver のいずれかが変わった場合、対応する契約も同じ変更で整合しているか確認する
10
10
  7. 複数レイヤーで解決・合成される値は、単体の正規化処理だけでなく、実際の入口から検証処理までの経路を追う
11
- 8. 副作用や状態変更を伴う差分は、入口・正常終了・早期終了・例外・後片付けの経路を追う
12
- 9. 指摘は現在の差分に起因し、ユーザーが修正すべきものだけにする
13
- 10. 各指摘には場所、影響、修正方針を含める
14
- 11. 根拠のない推測、好みだけの変更、今回の差分と無関係な既存問題は指摘しない
11
+ 8. 実行とは別に同じ値を表示・検証・説明する入口がある場合、主実行経路と同じ正規化済み入力・override 順・resolver で解決されているか比較する
12
+ 9. テストがある場合、値の存在だけでなく、未設定・設定・不正値・override・継承・非継承・非対応対象など元要件の分岐条件を踏んでいるか確認する
13
+ 10. 副作用や状態変更を伴う差分は、入口・正常終了・早期終了・例外・後片付けの経路を追う
14
+ 11. 指摘は現在の差分に起因し、ユーザーが修正すべきものだけにする
15
+ 12. 各指摘には場所、影響、修正方針を含める
16
+ 13. 根拠のない推測、好みだけの変更、今回の差分と無関係な既存問題は指摘しない
@@ -11,4 +11,9 @@
11
11
  2. 外部契約があるのに入力位置(root body / query / path)の検証が欠けている場合、カバレッジ不足として扱う
12
12
  3. 副作用や状態遷移を伴う変更では、正常系だけでなく代表的な失敗経路のテスト有無を確認する
13
13
  4. 共通化・抽象化で契約を統一した変更では、新しい共通経路だけでなく既存の同種分岐にも契約テストがあるか確認する
14
- 5. モックで代替した検証は、実連携まで確認したものとして扱わない
14
+ 5. 設定値、実行時に選択される能力・バックエンド・オプション、権限の変更では、値の存在ではなく、未設定・設定・override・継承・非継承など元要件の分岐条件を踏むテストか確認する
15
+ 6. 実行とは別に同じ値を表示・検証・説明する入口がある変更では、表示値だけでなく実行時の解決入力と一致することを検証しているか確認する
16
+ 7. モックで代替した検証は、実連携まで確認したものとして扱わない
17
+ 8. 禁止・拒否・非継承・非対応・隔離の検証が、完全一致文字列の不在だけでなく、観測単位を抽出して禁止値ごとに確認しているか確認する
18
+ 9. 新しい設定境界では、空文字列、空白だけの文字列、空配列、大小文字違いなどの正規化対象を必要に応じて確認する
19
+ 10. E2E の timeout、cleanup、強制終了の扱いが既存の同種テスト規約と一致しているか確認する
@@ -218,6 +218,8 @@ fun confirm(confirmedBy: String): OrderConfirmedEvent {
218
218
  | 読み取り用のクラス名やメソッド名なのに副作用を持つ | REJECT |
219
219
  | 単純な参照APIが問い合わせ層を呼び、レスポンスDTOに変換するだけ | OK |
220
220
  | 単純な状態変更APIが構造検証と認可境界の解決後にコマンドを1つ送るだけ | OK |
221
+ | Controller向けの読み取り調整役が認可境界、複数Read Model、ページング等を扱う | ApplicationService または ReadService として表現 |
222
+ | QueryHandler と同じ領域に QueryService という名前の送信側・調整側コンポーネントを置く | 警告。クエリ受信側と混同しやすい |
221
223
  | 複数のRead Model参照、外部連携、複数コマンド、結果待機をControllerに置く | REJECT。UseCase層に分離 |
222
224
  | UseCaseが別サービスへの薄い委譲だけでドメイン上の判断や調整を持たない | 削除を検討 |
223
225
 
@@ -471,6 +471,18 @@ Query側はイベント駆動のPubSubモデルで動作する。Projection が
471
471
  | Command と Query を同じサービスに混在させる | REJECT。責務と命名を分離 |
472
472
  | Query側で存在確認やスコープ確認を行い、呼び出し元がコマンドを送る | OK |
473
473
 
474
+ ### QueryHandler と ApplicationService の命名
475
+
476
+ CQRSではクエリを受けるコンポーネントを QueryHandler と呼び、クエリを送る入口は QueryGateway / QueryBus として扱う。Controller から読み取りユースケースを呼ぶ facade は、QueryHandler と混同しないよう ApplicationService または ReadService と名付ける。
477
+
478
+ | 基準 | 判定 |
479
+ |------|------|
480
+ | Query を受けて Read Model を参照し、Query結果の型を返す | QueryHandler |
481
+ | Controller から複数Query、認可境界、ページング、DTO組み立てを調整する | ApplicationService または ReadService |
482
+ | Query送信や読み取り調整だけのクラスを QueryService と呼ぶ | 警告。QueryHandler と混同しやすい |
483
+ | QueryHandler がHTTPリクエスト/レスポンスやController都合のエラー変換を知る | REJECT |
484
+ | 追加判断のない単純な読み取り wrapper を作る | 削除を検討。Controller から QueryGateway 直でもよい |
485
+
474
486
  レイヤー間の型:
475
487
  - `application/query/` - Query結果の型(例: `OrderDetail`)
476
488
  - `adapter/protocol/` - RESTレスポンスの型(例: `OrderDetailResponse`)