takt 0.38.0 → 0.39.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 (253) hide show
  1. package/builtins/en/workflow-categories.yaml +2 -0
  2. package/builtins/en/workflows/auto-improvement-loop.yaml +48 -19
  3. package/builtins/en/workflows/default-mini.yaml +246 -0
  4. package/builtins/ja/workflow-categories.yaml +2 -0
  5. package/builtins/ja/workflows/auto-improvement-loop.yaml +48 -19
  6. package/builtins/ja/workflows/default-mini.yaml +246 -0
  7. package/builtins/schemas/followup-task.json +1 -7
  8. package/builtins/schemas/pr-followup-task.json +20 -0
  9. package/dist/app/cli/immediateSigintExit.d.ts +2 -1
  10. package/dist/app/cli/immediateSigintExit.d.ts.map +1 -1
  11. package/dist/app/cli/immediateSigintExit.js +12 -4
  12. package/dist/app/cli/immediateSigintExit.js.map +1 -1
  13. package/dist/app/cli/index.d.ts.map +1 -1
  14. package/dist/app/cli/index.js +17 -4
  15. package/dist/app/cli/index.js.map +1 -1
  16. package/dist/app/cli/opencodeExitCleanup.d.ts +6 -0
  17. package/dist/app/cli/opencodeExitCleanup.d.ts.map +1 -0
  18. package/dist/app/cli/opencodeExitCleanup.js +7 -0
  19. package/dist/app/cli/opencodeExitCleanup.js.map +1 -0
  20. package/dist/core/models/index.d.ts +1 -1
  21. package/dist/core/models/index.d.ts.map +1 -1
  22. package/dist/core/models/index.js.map +1 -1
  23. package/dist/core/models/response.d.ts +8 -0
  24. package/dist/core/models/response.d.ts.map +1 -1
  25. package/dist/core/models/response.js +7 -1
  26. package/dist/core/models/response.js.map +1 -1
  27. package/dist/core/models/types.d.ts +1 -1
  28. package/dist/core/models/types.d.ts.map +1 -1
  29. package/dist/core/models/workflow-issue-system-schemas.d.ts +1 -0
  30. package/dist/core/models/workflow-issue-system-schemas.d.ts.map +1 -1
  31. package/dist/core/models/workflow-issue-system-schemas.js +1 -0
  32. package/dist/core/models/workflow-issue-system-schemas.js.map +1 -1
  33. package/dist/core/models/workflow-schemas.d.ts +1333 -4
  34. package/dist/core/models/workflow-schemas.d.ts.map +1 -1
  35. package/dist/core/models/workflow-schemas.js +11 -0
  36. package/dist/core/models/workflow-schemas.js.map +1 -1
  37. package/dist/core/models/workflow-system-input-types.d.ts +4 -0
  38. package/dist/core/models/workflow-system-input-types.d.ts.map +1 -1
  39. package/dist/core/models/workflow-system-schemas.d.ts +4 -0
  40. package/dist/core/models/workflow-system-schemas.d.ts.map +1 -1
  41. package/dist/core/models/workflow-system-schemas.js +24 -0
  42. package/dist/core/models/workflow-system-schemas.js.map +1 -1
  43. package/dist/core/models/workflow-types.d.ts +3 -0
  44. package/dist/core/models/workflow-types.d.ts.map +1 -1
  45. package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
  46. package/dist/core/workflow/engine/ArpeggioRunner.js +12 -3
  47. package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
  48. package/dist/core/workflow/engine/SystemStepExecutor.d.ts.map +1 -1
  49. package/dist/core/workflow/engine/SystemStepExecutor.js +4 -1
  50. package/dist/core/workflow/engine/SystemStepExecutor.js.map +1 -1
  51. package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
  52. package/dist/core/workflow/engine/TeamLeaderRunner.js +14 -1
  53. package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
  54. package/dist/core/workflow/engine/abort-signal.d.ts.map +1 -1
  55. package/dist/core/workflow/engine/abort-signal.js +2 -1
  56. package/dist/core/workflow/engine/abort-signal.js.map +1 -1
  57. package/dist/core/workflow/engine/team-leader-common.d.ts.map +1 -1
  58. package/dist/core/workflow/engine/team-leader-common.js +8 -0
  59. package/dist/core/workflow/engine/team-leader-common.js.map +1 -1
  60. package/dist/core/workflow/engine/team-leader-part-runner.d.ts +1 -1
  61. package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
  62. package/dist/core/workflow/engine/team-leader-part-runner.js +15 -3
  63. package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
  64. package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
  65. package/dist/core/workflow/instruction/InstructionBuilder.js +5 -1
  66. package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
  67. package/dist/core/workflow/instruction/ReportInstructionBuilder.d.ts.map +1 -1
  68. package/dist/core/workflow/instruction/ReportInstructionBuilder.js +5 -0
  69. package/dist/core/workflow/instruction/ReportInstructionBuilder.js.map +1 -1
  70. package/dist/core/workflow/instruction/escape.d.ts.map +1 -1
  71. package/dist/core/workflow/instruction/escape.js +5 -2
  72. package/dist/core/workflow/instruction/escape.js.map +1 -1
  73. package/dist/core/workflow/instruction/instruction-context.d.ts +3 -0
  74. package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
  75. package/dist/core/workflow/instruction/instruction-context.js +23 -0
  76. package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
  77. package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
  78. package/dist/core/workflow/report-phase-runner.js +5 -3
  79. package/dist/core/workflow/report-phase-runner.js.map +1 -1
  80. package/dist/core/workflow/run/order-content.d.ts.map +1 -1
  81. package/dist/core/workflow/run/order-content.js +12 -0
  82. package/dist/core/workflow/run/order-content.js.map +1 -1
  83. package/dist/core/workflow/run/run-meta.d.ts +2 -0
  84. package/dist/core/workflow/run/run-meta.d.ts.map +1 -1
  85. package/dist/core/workflow/run/run-meta.js.map +1 -1
  86. package/dist/core/workflow/system/system-step-effect-runner.d.ts.map +1 -1
  87. package/dist/core/workflow/system/system-step-effect-runner.js +4 -1
  88. package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
  89. package/dist/core/workflow/system/system-step-services.d.ts +1 -0
  90. package/dist/core/workflow/system/system-step-services.d.ts.map +1 -1
  91. package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
  92. package/dist/features/interactive/conversationLoop.js +17 -2
  93. package/dist/features/interactive/conversationLoop.js.map +1 -1
  94. package/dist/features/interactive/lineEditor.d.ts.map +1 -1
  95. package/dist/features/interactive/lineEditor.js +1 -6
  96. package/dist/features/interactive/lineEditor.js.map +1 -1
  97. package/dist/features/tasks/execute/runMeta.d.ts +1 -0
  98. package/dist/features/tasks/execute/runMeta.d.ts.map +1 -1
  99. package/dist/features/tasks/execute/runMeta.js +10 -0
  100. package/dist/features/tasks/execute/runMeta.js.map +1 -1
  101. package/dist/features/tasks/execute/sessionLoggerRecordFactory.d.ts.map +1 -1
  102. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js +1 -0
  103. package/dist/features/tasks/execute/sessionLoggerRecordFactory.js.map +1 -1
  104. package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
  105. package/dist/features/tasks/execute/taskWorkflowExecution.js +0 -2
  106. package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
  107. package/dist/features/tasks/execute/traceReportParser.d.ts.map +1 -1
  108. package/dist/features/tasks/execute/traceReportParser.js +1 -0
  109. package/dist/features/tasks/execute/traceReportParser.js.map +1 -1
  110. package/dist/features/tasks/execute/traceReportRenderer.d.ts.map +1 -1
  111. package/dist/features/tasks/execute/traceReportRenderer.js +3 -0
  112. package/dist/features/tasks/execute/traceReportRenderer.js.map +1 -1
  113. package/dist/features/tasks/execute/traceReportTypes.d.ts +2 -0
  114. package/dist/features/tasks/execute/traceReportTypes.d.ts.map +1 -1
  115. package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
  116. package/dist/features/tasks/execute/workflowExecutionEvents.js +2 -0
  117. package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
  118. package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
  119. package/dist/features/tasks/list/taskRetryActions.js +19 -14
  120. package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
  121. package/dist/infra/claude/client.d.ts.map +1 -1
  122. package/dist/infra/claude/client.js +2 -0
  123. package/dist/infra/claude/client.js.map +1 -1
  124. package/dist/infra/claude/executor.d.ts.map +1 -1
  125. package/dist/infra/claude/executor.js +47 -8
  126. package/dist/infra/claude/executor.js.map +1 -1
  127. package/dist/infra/claude/types.d.ts +15 -83
  128. package/dist/infra/claude/types.d.ts.map +1 -1
  129. package/dist/infra/codex/CodexStreamHandler.d.ts +3 -2
  130. package/dist/infra/codex/CodexStreamHandler.d.ts.map +1 -1
  131. package/dist/infra/codex/CodexStreamHandler.js +2 -1
  132. package/dist/infra/codex/CodexStreamHandler.js.map +1 -1
  133. package/dist/infra/codex/client.d.ts +4 -0
  134. package/dist/infra/codex/client.d.ts.map +1 -1
  135. package/dist/infra/codex/client.js +79 -60
  136. package/dist/infra/codex/client.js.map +1 -1
  137. package/dist/infra/codex/types.d.ts +1 -1
  138. package/dist/infra/codex/types.d.ts.map +1 -1
  139. package/dist/infra/config/loaders/resource-resolver.d.ts +20 -3
  140. package/dist/infra/config/loaders/resource-resolver.d.ts.map +1 -1
  141. package/dist/infra/config/loaders/resource-resolver.js +201 -5
  142. package/dist/infra/config/loaders/resource-resolver.js.map +1 -1
  143. package/dist/infra/config/loaders/workflowDoctor.d.ts +1 -1
  144. package/dist/infra/config/loaders/workflowDoctor.d.ts.map +1 -1
  145. package/dist/infra/config/loaders/workflowDoctor.js +0 -5
  146. package/dist/infra/config/loaders/workflowDoctor.js.map +1 -1
  147. package/dist/infra/config/loaders/workflowFileLoader.d.ts.map +1 -1
  148. package/dist/infra/config/loaders/workflowFileLoader.js +1 -1
  149. package/dist/infra/config/loaders/workflowFileLoader.js.map +1 -1
  150. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
  151. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +1 -1
  152. package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
  153. package/dist/infra/config/loaders/workflowParser.d.ts +1 -2
  154. package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
  155. package/dist/infra/config/loaders/workflowParser.js +15 -16
  156. package/dist/infra/config/loaders/workflowParser.js.map +1 -1
  157. package/dist/infra/config/loaders/workflowResolvedLoader.d.ts.map +1 -1
  158. package/dist/infra/config/loaders/workflowResolvedLoader.js +0 -4
  159. package/dist/infra/config/loaders/workflowResolvedLoader.js.map +1 -1
  160. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts +2 -2
  161. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
  162. package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
  163. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts +1 -1
  164. package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
  165. package/dist/infra/config/loaders/workflowStepNormalizer.js +7 -6
  166. package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
  167. package/dist/infra/config/loaders/workflowSystemStepNormalizer.d.ts.map +1 -1
  168. package/dist/infra/config/loaders/workflowSystemStepNormalizer.js +5 -0
  169. package/dist/infra/config/loaders/workflowSystemStepNormalizer.js.map +1 -1
  170. package/dist/infra/config/loaders/workflowTrustBoundary.d.ts +0 -9
  171. package/dist/infra/config/loaders/workflowTrustBoundary.d.ts.map +1 -1
  172. package/dist/infra/config/loaders/workflowTrustBoundary.js +24 -31
  173. package/dist/infra/config/loaders/workflowTrustBoundary.js.map +1 -1
  174. package/dist/infra/copilot/types.d.ts +1 -1
  175. package/dist/infra/copilot/types.d.ts.map +1 -1
  176. package/dist/infra/cursor/types.d.ts +1 -1
  177. package/dist/infra/cursor/types.d.ts.map +1 -1
  178. package/dist/infra/fs/session.d.ts.map +1 -1
  179. package/dist/infra/fs/session.js +1 -0
  180. package/dist/infra/fs/session.js.map +1 -1
  181. package/dist/infra/git/types.d.ts +1 -0
  182. package/dist/infra/git/types.d.ts.map +1 -1
  183. package/dist/infra/github/GitHubProvider.d.ts +1 -0
  184. package/dist/infra/github/GitHubProvider.d.ts.map +1 -1
  185. package/dist/infra/github/GitHubProvider.js +4 -1
  186. package/dist/infra/github/GitHubProvider.js.map +1 -1
  187. package/dist/infra/github/pr.d.ts +1 -0
  188. package/dist/infra/github/pr.d.ts.map +1 -1
  189. package/dist/infra/github/pr.js +19 -0
  190. package/dist/infra/github/pr.js.map +1 -1
  191. package/dist/infra/gitlab/GitLabProvider.d.ts +1 -0
  192. package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -1
  193. package/dist/infra/gitlab/GitLabProvider.js +4 -1
  194. package/dist/infra/gitlab/GitLabProvider.js.map +1 -1
  195. package/dist/infra/gitlab/pr.d.ts +1 -0
  196. package/dist/infra/gitlab/pr.d.ts.map +1 -1
  197. package/dist/infra/gitlab/pr.js +19 -0
  198. package/dist/infra/gitlab/pr.js.map +1 -1
  199. package/dist/infra/mock/client.d.ts.map +1 -1
  200. package/dist/infra/mock/types.d.ts +1 -1
  201. package/dist/infra/mock/types.d.ts.map +1 -1
  202. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +1 -1
  203. package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
  204. package/dist/infra/opencode/types.d.ts +1 -1
  205. package/dist/infra/opencode/types.d.ts.map +1 -1
  206. package/dist/infra/providers/types.d.ts +2 -1
  207. package/dist/infra/providers/types.d.ts.map +1 -1
  208. package/dist/infra/task/taskConfigSerialization.d.ts +1 -1
  209. package/dist/infra/task/taskConfigSerialization.d.ts.map +1 -1
  210. package/dist/infra/task/taskConfigSerialization.js +30 -3
  211. package/dist/infra/task/taskConfigSerialization.js.map +1 -1
  212. package/dist/infra/task/taskExecutionSchemas.d.ts +2 -2
  213. package/dist/infra/task/taskLifecycleService.d.ts +1 -0
  214. package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
  215. package/dist/infra/task/taskLifecycleService.js +22 -3
  216. package/dist/infra/task/taskLifecycleService.js.map +1 -1
  217. package/dist/infra/task/taskRecordMutations.d.ts +1 -1
  218. package/dist/infra/task/taskRecordMutations.d.ts.map +1 -1
  219. package/dist/infra/task/taskRecordMutations.js +5 -2
  220. package/dist/infra/task/taskRecordMutations.js.map +1 -1
  221. package/dist/infra/task/taskRecordSchemas.d.ts +2 -2
  222. package/dist/infra/workflow/system/DefaultSystemStepServices.d.ts.map +1 -1
  223. package/dist/infra/workflow/system/DefaultSystemStepServices.js +3 -1
  224. package/dist/infra/workflow/system/DefaultSystemStepServices.js.map +1 -1
  225. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts +8 -2
  226. package/dist/infra/workflow/system/system-issue-input-resolver.d.ts.map +1 -1
  227. package/dist/infra/workflow/system/system-issue-input-resolver.js +140 -6
  228. package/dist/infra/workflow/system/system-issue-input-resolver.js.map +1 -1
  229. package/dist/infra/workflow/system/system-pr-effects.d.ts +3 -0
  230. package/dist/infra/workflow/system/system-pr-effects.d.ts.map +1 -1
  231. package/dist/infra/workflow/system/system-pr-effects.js +8 -0
  232. package/dist/infra/workflow/system/system-pr-effects.js.map +1 -1
  233. package/dist/infra/workflow/system/system-selection-helpers.d.ts +2 -0
  234. package/dist/infra/workflow/system/system-selection-helpers.d.ts.map +1 -1
  235. package/dist/infra/workflow/system/system-selection-helpers.js +15 -0
  236. package/dist/infra/workflow/system/system-selection-helpers.js.map +1 -1
  237. package/dist/shared/i18n/labels_en.yaml +2 -0
  238. package/dist/shared/i18n/labels_ja.yaml +2 -0
  239. package/dist/shared/prompts/en/perform_phase1_message.md +8 -7
  240. package/dist/shared/prompts/en/perform_phase2_message.md +4 -3
  241. package/dist/shared/prompts/ja/perform_phase1_message.md +8 -7
  242. package/dist/shared/prompts/ja/perform_phase2_message.md +4 -3
  243. package/dist/shared/types/agent-failure.d.ts +23 -0
  244. package/dist/shared/types/agent-failure.d.ts.map +1 -0
  245. package/dist/shared/types/agent-failure.js +72 -0
  246. package/dist/shared/types/agent-failure.js.map +1 -0
  247. package/dist/shared/types/provider.d.ts +2 -0
  248. package/dist/shared/types/provider.d.ts.map +1 -1
  249. package/dist/shared/utils/types.d.ts +4 -0
  250. package/dist/shared/utils/types.d.ts.map +1 -1
  251. package/dist/shared/utils/types.js +0 -6
  252. package/dist/shared/utils/types.js.map +1 -1
  253. package/package.json +1 -1
@@ -2,12 +2,14 @@ workflow_categories:
2
2
  🚀 Quick Start:
3
3
  workflows:
4
4
  - default
5
+ - default-mini
5
6
  - default-high
6
7
  - frontend
7
8
  - backend
8
9
  - dual
9
10
  ⚡ Mini:
10
11
  workflows:
12
+ - default-mini
11
13
  - frontend-mini
12
14
  - backend-mini
13
15
  - backend-cqrs-mini
@@ -6,6 +6,7 @@ max_steps: infinite
6
6
  initial_step: route_context
7
7
  schemas:
8
8
  followup-task: followup-task
9
+ pr-followup-task: pr-followup-task
9
10
  steps:
10
11
  - name: route_context
11
12
  mode: system
@@ -37,6 +38,10 @@ steps:
37
38
  - type: issue_selection
38
39
  source: current_project
39
40
  as: selected_issue
41
+ - type: issue_list
42
+ source: current_project
43
+ as: tracked_issues
44
+ exclude_selected_from: selected_issue
40
45
  rules:
41
46
  - when: context.route_context.selected_pr.exists == true
42
47
  next: plan_from_existing_pr
@@ -62,22 +67,37 @@ steps:
62
67
  - task_exists: {context:route_context.task.exists}
63
68
  - branch_exists: {context:route_context.branch.exists}
64
69
 
65
- Do not implement anything. Output only the next task instruction in task_markdown.
66
- Output the next action in action.
67
- If needed, output the issue creation plan in issue.
68
70
  Current execution context:
69
71
  - task_exists: {context:route_context.task.exists}
70
72
  - branch_exists: {context:route_context.branch.exists}
71
73
 
74
+ Open managed PR snapshot for overlap checks:
75
+ {context:route_context.prs}
76
+
77
+ Other open issue metadata for overlap checks:
78
+ {context:route_context.tracked_issues}
79
+ - other_open_issue_count: {context:route_context.tracked_issues.length}
80
+
81
+ Prioritize user value. Prefer bug fix > missing capability completion > UX/quality improvement > cosmetic.
82
+ Plan exactly one task.
83
+ Only propose a task when it has a concrete deliverable and explicit completion criteria.
84
+ Avoid cosmetic-only changes unless they clearly unlock meaningful user value.
85
+ Treat the current issue itself as in-scope, not as a duplicate.
86
+ Avoid tasks that materially duplicate or overlap with an open PR or the other open issues listed above.
87
+
88
+ Do not implement anything. Output only the next task instruction in task_markdown.
89
+ Output the next action in action.
90
+ If needed, output the issue creation plan in issue.
91
+
72
92
  Allowed action values:
73
93
  - enqueue_new_task
74
- - noop
94
+ - wait_before_next_scan
75
95
  structured_output:
76
96
  schema_ref: followup-task
77
97
  rules:
78
98
  - when: structured.plan_from_issue.action == "enqueue_new_task"
79
99
  next: enqueue_from_issue
80
- - when: structured.plan_from_issue.action == "noop"
100
+ - when: structured.plan_from_issue.action == "wait_before_next_scan"
81
101
  next: wait_before_next_scan
82
102
  - when: "true"
83
103
  next: ABORT
@@ -112,19 +132,33 @@ steps:
112
132
  Inspect the current codebase,
113
133
  and plan exactly one next improvement task.
114
134
 
135
+ Open managed PR snapshot for overlap checks:
136
+ {context:route_context.prs}
137
+
138
+ Open issue metadata already tracked:
139
+ {context:route_context.tracked_issues}
140
+ - open_issue_count: {context:route_context.tracked_issues.length}
141
+
142
+ Prioritize user value. Prefer bug fix > missing capability completion > UX/quality improvement > cosmetic.
143
+ Plan exactly one task.
144
+ Only propose a task when it has a concrete deliverable and explicit completion criteria.
145
+ Avoid cosmetic-only changes unless they clearly unlock meaningful user value.
146
+ Avoid tasks that materially duplicate or overlap with an open PR or tracked open issue.
147
+ If you cannot identify a clearly distinct, high-value task, choose wait_before_next_scan.
148
+
115
149
  Do not implement anything. Output only the next task instruction in task_markdown.
116
150
  Output the next action in action.
117
151
  If needed, output the issue creation plan in issue.
118
152
 
119
153
  Allowed action values:
120
154
  - enqueue_new_task
121
- - noop
155
+ - wait_before_next_scan
122
156
  structured_output:
123
157
  schema_ref: followup-task
124
158
  rules:
125
159
  - when: structured.plan_fresh_improvement.action == "enqueue_new_task"
126
160
  next: enqueue_fresh
127
- - when: structured.plan_fresh_improvement.action == "noop"
161
+ - when: structured.plan_fresh_improvement.action == "wait_before_next_scan"
128
162
  next: wait_before_next_scan
129
163
  - when: "true"
130
164
  next: ABORT
@@ -166,35 +200,30 @@ steps:
166
200
 
167
201
  Output the next action in action.
168
202
  If a follow-up implementation task is needed, output it in task_markdown.
169
- If content should be left on the PR, output it in pr_comment_markdown.
170
203
 
171
204
  Allowed action values:
172
- - comment_on_pr
173
205
  - enqueue_from_pr
174
206
  - prepare_merge
175
- - noop
207
+ - reject_pr
176
208
  structured_output:
177
- schema_ref: followup-task
209
+ schema_ref: pr-followup-task
178
210
  rules:
179
- - when: structured.plan_from_existing_pr.action == "comment_on_pr"
180
- next: comment_on_existing_pr
181
211
  - when: structured.plan_from_existing_pr.action == "enqueue_from_pr"
182
212
  next: enqueue_from_pr
183
213
  - when: structured.plan_from_existing_pr.action == "prepare_merge"
184
214
  next: prepare_merge
185
- - when: structured.plan_from_existing_pr.action == "noop"
186
- next: wait_before_next_scan
215
+ - when: structured.plan_from_existing_pr.action == "reject_pr"
216
+ next: reject_pr
187
217
  - when: "true"
188
218
  next: ABORT
189
219
 
190
- - name: comment_on_existing_pr
220
+ - name: reject_pr
191
221
  mode: system
192
222
  effects:
193
- - type: comment_pr
223
+ - type: close_pr
194
224
  pr: "{context:route_context.selected_pr.number}"
195
- body: "{structured:plan_from_existing_pr.pr_comment_markdown}"
196
225
  rules:
197
- - when: effect.comment_on_existing_pr.comment_pr.success == true
226
+ - when: effect.reject_pr.close_pr.success == true
198
227
  next: wait_before_next_scan
199
228
  - when: "true"
200
229
  next: ABORT
@@ -0,0 +1,246 @@
1
+ name: default-mini
2
+ description: Mini development workflow without tests (plan → implement → AI antipattern review → parallel review → complete)
3
+ workflow_config:
4
+ provider_options:
5
+ codex:
6
+ network_access: true
7
+ opencode:
8
+ network_access: true
9
+ max_steps: 30
10
+ initial_step: plan
11
+ loop_monitors:
12
+ - cycle:
13
+ - ai_review
14
+ - ai_fix
15
+ threshold: 3
16
+ judge:
17
+ persona: supervisor
18
+ instruction: |
19
+ The ai_review ↔ ai_fix loop has repeated {cycle_count} times.
20
+
21
+ Review the reports from each cycle and determine whether this loop
22
+ is healthy (making progress) or unproductive (repeating the same issues).
23
+
24
+ **Reports to reference:**
25
+ - AI Review results: {report:ai-review.md}
26
+
27
+ **Judgment criteria:**
28
+ - Are new issues being found/fixed in each cycle?
29
+ - Are the same findings being repeated?
30
+ - Are fixes actually being applied?
31
+ rules:
32
+ - condition: Healthy (making progress)
33
+ next: ai_review
34
+ - condition: Unproductive (no improvement)
35
+ next: reviewers
36
+ - cycle:
37
+ - reviewers
38
+ - fix
39
+ threshold: 3
40
+ judge:
41
+ persona: supervisor
42
+ instruction: loop-monitor-reviewers-fix
43
+ rules:
44
+ - condition: converging (findings decreasing, fixes applied)
45
+ next: reviewers
46
+ - condition: unproductive (same findings repeating)
47
+ next: ABORT
48
+ steps:
49
+ - name: plan
50
+ edit: false
51
+ persona: planner
52
+ knowledge: architecture
53
+ provider_options:
54
+ claude:
55
+ allowed_tools:
56
+ - Read
57
+ - Glob
58
+ - Grep
59
+ - Bash
60
+ - WebSearch
61
+ - WebFetch
62
+ rules:
63
+ - condition: Requirements are clear and implementable
64
+ next: implement
65
+ - condition: User is asking a question (not an implementation task)
66
+ next: COMPLETE
67
+ - condition: Requirements unclear, insufficient info
68
+ next: ABORT
69
+ appendix: |
70
+ Clarifications needed:
71
+ - {Question 1}
72
+ - {Question 2}
73
+ instruction: plan
74
+ output_contracts:
75
+ report:
76
+ - name: plan.md
77
+ format: plan
78
+ - name: implement
79
+ edit: true
80
+ persona: coder
81
+ policy:
82
+ - coding
83
+ - testing
84
+ knowledge:
85
+ - architecture
86
+ provider_options:
87
+ claude:
88
+ allowed_tools:
89
+ - Read
90
+ - Glob
91
+ - Grep
92
+ - Edit
93
+ - Write
94
+ - Bash
95
+ - WebSearch
96
+ - WebFetch
97
+ required_permission_mode: edit
98
+ instruction: implement
99
+ rules:
100
+ - condition: Implementation complete
101
+ next: ai_review
102
+ - condition: Cannot proceed with implementation
103
+ next: ABORT
104
+ - condition: User input required
105
+ next: implement
106
+ requires_user_input: true
107
+ interactive_only: true
108
+ output_contracts:
109
+ report:
110
+ - name: coder-scope.md
111
+ format: coder-scope
112
+ - name: coder-decisions.md
113
+ format: coder-decisions
114
+ - name: ai_review
115
+ edit: false
116
+ persona: ai-antipattern-reviewer
117
+ policy:
118
+ - review
119
+ - ai-antipattern
120
+ provider_options:
121
+ claude:
122
+ allowed_tools:
123
+ - Read
124
+ - Glob
125
+ - Grep
126
+ - WebSearch
127
+ - WebFetch
128
+ instruction: ai-review
129
+ rules:
130
+ - condition: No AI-specific issues
131
+ next: reviewers
132
+ - condition: AI-specific issues found
133
+ next: ai_fix
134
+ output_contracts:
135
+ report:
136
+ - name: ai-review.md
137
+ format: ai-review
138
+ - name: ai_fix
139
+ edit: true
140
+ persona: coder
141
+ policy:
142
+ - coding
143
+ - testing
144
+ session: refresh
145
+ knowledge:
146
+ - architecture
147
+ provider_options:
148
+ claude:
149
+ allowed_tools:
150
+ - Read
151
+ - Glob
152
+ - Grep
153
+ - Edit
154
+ - Write
155
+ - Bash
156
+ - WebSearch
157
+ - WebFetch
158
+ required_permission_mode: edit
159
+ instruction: ai-fix
160
+ pass_previous_response: false
161
+ rules:
162
+ - condition: AI issues fixed
163
+ next: ai_review
164
+ - condition: No fix needed (verified target files/spec)
165
+ next: reviewers
166
+ - condition: Cannot proceed with fixes
167
+ next: reviewers
168
+ - name: reviewers
169
+ parallel:
170
+ - name: arch-review
171
+ edit: false
172
+ persona: architecture-reviewer
173
+ policy: review
174
+ knowledge: architecture
175
+ provider_options:
176
+ claude:
177
+ allowed_tools:
178
+ - Read
179
+ - Glob
180
+ - Grep
181
+ - WebSearch
182
+ - WebFetch
183
+ rules:
184
+ - condition: approved
185
+ - condition: needs_fix
186
+ instruction: review-arch
187
+ output_contracts:
188
+ report:
189
+ - name: architect-review.md
190
+ format: architecture-review
191
+ - name: supervise
192
+ edit: false
193
+ persona: supervisor
194
+ policy: review
195
+ provider_options:
196
+ claude:
197
+ allowed_tools:
198
+ - Read
199
+ - Glob
200
+ - Grep
201
+ - Bash
202
+ - WebSearch
203
+ - WebFetch
204
+ instruction: supervise
205
+ rules:
206
+ - condition: All checks passed
207
+ - condition: Requirements unmet, tests failing, build errors
208
+ output_contracts:
209
+ report:
210
+ - name: supervisor-validation.md
211
+ format: supervisor-validation
212
+ - name: summary.md
213
+ format: summary
214
+ use_judge: false
215
+ rules:
216
+ - condition: all("approved", "All checks passed")
217
+ next: COMPLETE
218
+ - condition: any("needs_fix", "Requirements unmet, tests failing, build errors")
219
+ next: fix
220
+ - name: fix
221
+ edit: true
222
+ persona: coder
223
+ policy:
224
+ - coding
225
+ - testing
226
+ knowledge:
227
+ - architecture
228
+ provider_options:
229
+ claude:
230
+ allowed_tools:
231
+ - Read
232
+ - Glob
233
+ - Grep
234
+ - Edit
235
+ - Write
236
+ - Bash
237
+ - WebSearch
238
+ - WebFetch
239
+ required_permission_mode: edit
240
+ instruction: fix
241
+ pass_previous_response: false
242
+ rules:
243
+ - condition: Fix complete
244
+ next: reviewers
245
+ - condition: Cannot proceed, insufficient info
246
+ next: plan
@@ -2,12 +2,14 @@ workflow_categories:
2
2
  🚀 クイックスタート:
3
3
  workflows:
4
4
  - default
5
+ - default-mini
5
6
  - default-high
6
7
  - frontend
7
8
  - backend
8
9
  - dual
9
10
  ⚡ Mini:
10
11
  workflows:
12
+ - default-mini
11
13
  - frontend-mini
12
14
  - backend-mini
13
15
  - backend-cqrs-mini
@@ -6,6 +6,7 @@ max_steps: infinite
6
6
  initial_step: route_context
7
7
  schemas:
8
8
  followup-task: followup-task
9
+ pr-followup-task: pr-followup-task
9
10
  steps:
10
11
  - name: route_context
11
12
  mode: system
@@ -37,6 +38,10 @@ steps:
37
38
  - type: issue_selection
38
39
  source: current_project
39
40
  as: selected_issue
41
+ - type: issue_list
42
+ source: current_project
43
+ as: tracked_issues
44
+ exclude_selected_from: selected_issue
40
45
  rules:
41
46
  - when: context.route_context.selected_pr.exists == true
42
47
  next: plan_from_existing_pr
@@ -62,22 +67,37 @@ steps:
62
67
  - task_exists: {context:route_context.task.exists}
63
68
  - branch_exists: {context:route_context.branch.exists}
64
69
 
65
- 実装は行わず、次タスクの指示書だけを task_markdown に出力してください。
66
- action には次アクションを出力してください。
67
- 必要なら issue に Issue 作成方針を出力してください。
68
70
  現在の実行コンテキスト:
69
71
  - task_exists: {context:route_context.task.exists}
70
72
  - branch_exists: {context:route_context.branch.exists}
71
73
 
74
+ 重複確認用の open PR 要約:
75
+ {context:route_context.prs}
76
+
77
+ 重複確認用の他 open Issue メタデータ:
78
+ {context:route_context.tracked_issues}
79
+ - other_open_issue_count: {context:route_context.tracked_issues.length}
80
+
81
+ ユーザー価値を優先し、優先順位は バグ修正 > 機能欠落の補完 > UX / 品質改善 > cosmetic としてください。
82
+ task は 1 件だけ計画してください。
83
+ 具体的な成果物と明示的な完了条件がある task だけを提案してください。
84
+ cosmetic-only な変更は、明確なユーザー価値がない限り避けてください。
85
+ 現在の Issue 自身は重複対象に含めず、比較対象は上記の他 open Issue のみとしてください。
86
+ open PR / 他 open Issue と実質的に重複する task は避けてください。
87
+
88
+ 実装は行わず、次タスクの指示書だけを task_markdown に出力してください。
89
+ action には次アクションを出力してください。
90
+ 必要なら issue に Issue 作成方針を出力してください。
91
+
72
92
  action の候補:
73
93
  - enqueue_new_task
74
- - noop
94
+ - wait_before_next_scan
75
95
  structured_output:
76
96
  schema_ref: followup-task
77
97
  rules:
78
98
  - when: structured.plan_from_issue.action == "enqueue_new_task"
79
99
  next: enqueue_from_issue
80
- - when: structured.plan_from_issue.action == "noop"
100
+ - when: structured.plan_from_issue.action == "wait_before_next_scan"
81
101
  next: wait_before_next_scan
82
102
  - when: "true"
83
103
  next: ABORT
@@ -112,19 +132,33 @@ steps:
112
132
  現在のコードベースを確認し、
113
133
  次に実行すべき改善 task を 1 件だけ計画してください。
114
134
 
135
+ 重複確認用の open PR 要約:
136
+ {context:route_context.prs}
137
+
138
+ 重複確認用の open Issue メタデータ:
139
+ {context:route_context.tracked_issues}
140
+ - open_issue_count: {context:route_context.tracked_issues.length}
141
+
142
+ ユーザー価値を優先し、優先順位は バグ修正 > 機能欠落の補完 > UX / 品質改善 > cosmetic としてください。
143
+ task は 1 件だけ計画してください。
144
+ 具体的な成果物と明示的な完了条件がある task だけを提案してください。
145
+ cosmetic-only な変更は、明確なユーザー価値がない限り避けてください。
146
+ open PR / 既存の open Issue と実質的に重複する task は避けてください。
147
+ 明確に独立した高価値 task を特定できない場合は wait_before_next_scan を選んでください。
148
+
115
149
  実装は行わず、次タスクの指示書だけを task_markdown に出力してください。
116
150
  action には次アクションを出力してください。
117
151
  必要なら issue に Issue 作成方針を出力してください。
118
152
 
119
153
  action の候補:
120
154
  - enqueue_new_task
121
- - noop
155
+ - wait_before_next_scan
122
156
  structured_output:
123
157
  schema_ref: followup-task
124
158
  rules:
125
159
  - when: structured.plan_fresh_improvement.action == "enqueue_new_task"
126
160
  next: enqueue_fresh
127
- - when: structured.plan_fresh_improvement.action == "noop"
161
+ - when: structured.plan_fresh_improvement.action == "wait_before_next_scan"
128
162
  next: wait_before_next_scan
129
163
  - when: "true"
130
164
  next: ABORT
@@ -166,35 +200,30 @@ steps:
166
200
 
167
201
  action には次アクションを出力してください。
168
202
  修正 task が必要なら task_markdown に出力してください。
169
- PR に残す内容があれば pr_comment_markdown に出力してください。
170
203
 
171
204
  action の候補:
172
- - comment_on_pr
173
205
  - enqueue_from_pr
174
206
  - prepare_merge
175
- - noop
207
+ - reject_pr
176
208
  structured_output:
177
- schema_ref: followup-task
209
+ schema_ref: pr-followup-task
178
210
  rules:
179
- - when: structured.plan_from_existing_pr.action == "comment_on_pr"
180
- next: comment_on_existing_pr
181
211
  - when: structured.plan_from_existing_pr.action == "enqueue_from_pr"
182
212
  next: enqueue_from_pr
183
213
  - when: structured.plan_from_existing_pr.action == "prepare_merge"
184
214
  next: prepare_merge
185
- - when: structured.plan_from_existing_pr.action == "noop"
186
- next: wait_before_next_scan
215
+ - when: structured.plan_from_existing_pr.action == "reject_pr"
216
+ next: reject_pr
187
217
  - when: "true"
188
218
  next: ABORT
189
219
 
190
- - name: comment_on_existing_pr
220
+ - name: reject_pr
191
221
  mode: system
192
222
  effects:
193
- - type: comment_pr
223
+ - type: close_pr
194
224
  pr: "{context:route_context.selected_pr.number}"
195
- body: "{structured:plan_from_existing_pr.pr_comment_markdown}"
196
225
  rules:
197
- - when: effect.comment_on_existing_pr.comment_pr.success == true
226
+ - when: effect.reject_pr.close_pr.success == true
198
227
  next: wait_before_next_scan
199
228
  - when: "true"
200
229
  next: ABORT