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.
- package/builtins/en/workflow-categories.yaml +2 -0
- package/builtins/en/workflows/auto-improvement-loop.yaml +48 -19
- package/builtins/en/workflows/default-mini.yaml +246 -0
- package/builtins/ja/workflow-categories.yaml +2 -0
- package/builtins/ja/workflows/auto-improvement-loop.yaml +48 -19
- package/builtins/ja/workflows/default-mini.yaml +246 -0
- package/builtins/schemas/followup-task.json +1 -7
- package/builtins/schemas/pr-followup-task.json +20 -0
- package/dist/app/cli/immediateSigintExit.d.ts +2 -1
- package/dist/app/cli/immediateSigintExit.d.ts.map +1 -1
- package/dist/app/cli/immediateSigintExit.js +12 -4
- package/dist/app/cli/immediateSigintExit.js.map +1 -1
- package/dist/app/cli/index.d.ts.map +1 -1
- package/dist/app/cli/index.js +17 -4
- package/dist/app/cli/index.js.map +1 -1
- package/dist/app/cli/opencodeExitCleanup.d.ts +6 -0
- package/dist/app/cli/opencodeExitCleanup.d.ts.map +1 -0
- package/dist/app/cli/opencodeExitCleanup.js +7 -0
- package/dist/app/cli/opencodeExitCleanup.js.map +1 -0
- package/dist/core/models/index.d.ts +1 -1
- package/dist/core/models/index.d.ts.map +1 -1
- package/dist/core/models/index.js.map +1 -1
- package/dist/core/models/response.d.ts +8 -0
- package/dist/core/models/response.d.ts.map +1 -1
- package/dist/core/models/response.js +7 -1
- package/dist/core/models/response.js.map +1 -1
- package/dist/core/models/types.d.ts +1 -1
- package/dist/core/models/types.d.ts.map +1 -1
- package/dist/core/models/workflow-issue-system-schemas.d.ts +1 -0
- package/dist/core/models/workflow-issue-system-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-issue-system-schemas.js +1 -0
- package/dist/core/models/workflow-issue-system-schemas.js.map +1 -1
- package/dist/core/models/workflow-schemas.d.ts +1333 -4
- package/dist/core/models/workflow-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-schemas.js +11 -0
- package/dist/core/models/workflow-schemas.js.map +1 -1
- package/dist/core/models/workflow-system-input-types.d.ts +4 -0
- package/dist/core/models/workflow-system-input-types.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.d.ts +4 -0
- package/dist/core/models/workflow-system-schemas.d.ts.map +1 -1
- package/dist/core/models/workflow-system-schemas.js +24 -0
- package/dist/core/models/workflow-system-schemas.js.map +1 -1
- package/dist/core/models/workflow-types.d.ts +3 -0
- package/dist/core/models/workflow-types.d.ts.map +1 -1
- package/dist/core/workflow/engine/ArpeggioRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/ArpeggioRunner.js +12 -3
- package/dist/core/workflow/engine/ArpeggioRunner.js.map +1 -1
- package/dist/core/workflow/engine/SystemStepExecutor.d.ts.map +1 -1
- package/dist/core/workflow/engine/SystemStepExecutor.js +4 -1
- package/dist/core/workflow/engine/SystemStepExecutor.js.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.d.ts.map +1 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js +14 -1
- package/dist/core/workflow/engine/TeamLeaderRunner.js.map +1 -1
- package/dist/core/workflow/engine/abort-signal.d.ts.map +1 -1
- package/dist/core/workflow/engine/abort-signal.js +2 -1
- package/dist/core/workflow/engine/abort-signal.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-common.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-common.js +8 -0
- package/dist/core/workflow/engine/team-leader-common.js.map +1 -1
- package/dist/core/workflow/engine/team-leader-part-runner.d.ts +1 -1
- package/dist/core/workflow/engine/team-leader-part-runner.d.ts.map +1 -1
- package/dist/core/workflow/engine/team-leader-part-runner.js +15 -3
- package/dist/core/workflow/engine/team-leader-part-runner.js.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/InstructionBuilder.js +5 -1
- package/dist/core/workflow/instruction/InstructionBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/ReportInstructionBuilder.d.ts.map +1 -1
- package/dist/core/workflow/instruction/ReportInstructionBuilder.js +5 -0
- package/dist/core/workflow/instruction/ReportInstructionBuilder.js.map +1 -1
- package/dist/core/workflow/instruction/escape.d.ts.map +1 -1
- package/dist/core/workflow/instruction/escape.js +5 -2
- package/dist/core/workflow/instruction/escape.js.map +1 -1
- package/dist/core/workflow/instruction/instruction-context.d.ts +3 -0
- package/dist/core/workflow/instruction/instruction-context.d.ts.map +1 -1
- package/dist/core/workflow/instruction/instruction-context.js +23 -0
- package/dist/core/workflow/instruction/instruction-context.js.map +1 -1
- package/dist/core/workflow/report-phase-runner.d.ts.map +1 -1
- package/dist/core/workflow/report-phase-runner.js +5 -3
- package/dist/core/workflow/report-phase-runner.js.map +1 -1
- package/dist/core/workflow/run/order-content.d.ts.map +1 -1
- package/dist/core/workflow/run/order-content.js +12 -0
- package/dist/core/workflow/run/order-content.js.map +1 -1
- package/dist/core/workflow/run/run-meta.d.ts +2 -0
- package/dist/core/workflow/run/run-meta.d.ts.map +1 -1
- package/dist/core/workflow/run/run-meta.js.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.d.ts.map +1 -1
- package/dist/core/workflow/system/system-step-effect-runner.js +4 -1
- package/dist/core/workflow/system/system-step-effect-runner.js.map +1 -1
- package/dist/core/workflow/system/system-step-services.d.ts +1 -0
- package/dist/core/workflow/system/system-step-services.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.d.ts.map +1 -1
- package/dist/features/interactive/conversationLoop.js +17 -2
- package/dist/features/interactive/conversationLoop.js.map +1 -1
- package/dist/features/interactive/lineEditor.d.ts.map +1 -1
- package/dist/features/interactive/lineEditor.js +1 -6
- package/dist/features/interactive/lineEditor.js.map +1 -1
- package/dist/features/tasks/execute/runMeta.d.ts +1 -0
- package/dist/features/tasks/execute/runMeta.d.ts.map +1 -1
- package/dist/features/tasks/execute/runMeta.js +10 -0
- package/dist/features/tasks/execute/runMeta.js.map +1 -1
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.d.ts.map +1 -1
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.js +1 -0
- package/dist/features/tasks/execute/sessionLoggerRecordFactory.js.map +1 -1
- package/dist/features/tasks/execute/taskWorkflowExecution.d.ts.map +1 -1
- package/dist/features/tasks/execute/taskWorkflowExecution.js +0 -2
- package/dist/features/tasks/execute/taskWorkflowExecution.js.map +1 -1
- package/dist/features/tasks/execute/traceReportParser.d.ts.map +1 -1
- package/dist/features/tasks/execute/traceReportParser.js +1 -0
- package/dist/features/tasks/execute/traceReportParser.js.map +1 -1
- package/dist/features/tasks/execute/traceReportRenderer.d.ts.map +1 -1
- package/dist/features/tasks/execute/traceReportRenderer.js +3 -0
- package/dist/features/tasks/execute/traceReportRenderer.js.map +1 -1
- package/dist/features/tasks/execute/traceReportTypes.d.ts +2 -0
- package/dist/features/tasks/execute/traceReportTypes.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.d.ts.map +1 -1
- package/dist/features/tasks/execute/workflowExecutionEvents.js +2 -0
- package/dist/features/tasks/execute/workflowExecutionEvents.js.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.d.ts.map +1 -1
- package/dist/features/tasks/list/taskRetryActions.js +19 -14
- package/dist/features/tasks/list/taskRetryActions.js.map +1 -1
- package/dist/infra/claude/client.d.ts.map +1 -1
- package/dist/infra/claude/client.js +2 -0
- package/dist/infra/claude/client.js.map +1 -1
- package/dist/infra/claude/executor.d.ts.map +1 -1
- package/dist/infra/claude/executor.js +47 -8
- package/dist/infra/claude/executor.js.map +1 -1
- package/dist/infra/claude/types.d.ts +15 -83
- package/dist/infra/claude/types.d.ts.map +1 -1
- package/dist/infra/codex/CodexStreamHandler.d.ts +3 -2
- package/dist/infra/codex/CodexStreamHandler.d.ts.map +1 -1
- package/dist/infra/codex/CodexStreamHandler.js +2 -1
- package/dist/infra/codex/CodexStreamHandler.js.map +1 -1
- package/dist/infra/codex/client.d.ts +4 -0
- package/dist/infra/codex/client.d.ts.map +1 -1
- package/dist/infra/codex/client.js +79 -60
- package/dist/infra/codex/client.js.map +1 -1
- package/dist/infra/codex/types.d.ts +1 -1
- package/dist/infra/codex/types.d.ts.map +1 -1
- package/dist/infra/config/loaders/resource-resolver.d.ts +20 -3
- package/dist/infra/config/loaders/resource-resolver.d.ts.map +1 -1
- package/dist/infra/config/loaders/resource-resolver.js +201 -5
- package/dist/infra/config/loaders/resource-resolver.js.map +1 -1
- package/dist/infra/config/loaders/workflowDoctor.d.ts +1 -1
- package/dist/infra/config/loaders/workflowDoctor.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowDoctor.js +0 -5
- package/dist/infra/config/loaders/workflowDoctor.js.map +1 -1
- package/dist/infra/config/loaders/workflowFileLoader.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowFileLoader.js +1 -1
- package/dist/infra/config/loaders/workflowFileLoader.js.map +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js +1 -1
- package/dist/infra/config/loaders/workflowLoopMonitorNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowParser.d.ts +1 -2
- package/dist/infra/config/loaders/workflowParser.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowParser.js +15 -16
- package/dist/infra/config/loaders/workflowParser.js.map +1 -1
- package/dist/infra/config/loaders/workflowResolvedLoader.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowResolvedLoader.js +0 -4
- package/dist/infra/config/loaders/workflowResolvedLoader.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts +2 -2
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepFeaturesNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowStepNormalizer.js +7 -6
- package/dist/infra/config/loaders/workflowStepNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowSystemStepNormalizer.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowSystemStepNormalizer.js +5 -0
- package/dist/infra/config/loaders/workflowSystemStepNormalizer.js.map +1 -1
- package/dist/infra/config/loaders/workflowTrustBoundary.d.ts +0 -9
- package/dist/infra/config/loaders/workflowTrustBoundary.d.ts.map +1 -1
- package/dist/infra/config/loaders/workflowTrustBoundary.js +24 -31
- package/dist/infra/config/loaders/workflowTrustBoundary.js.map +1 -1
- package/dist/infra/copilot/types.d.ts +1 -1
- package/dist/infra/copilot/types.d.ts.map +1 -1
- package/dist/infra/cursor/types.d.ts +1 -1
- package/dist/infra/cursor/types.d.ts.map +1 -1
- package/dist/infra/fs/session.d.ts.map +1 -1
- package/dist/infra/fs/session.js +1 -0
- package/dist/infra/fs/session.js.map +1 -1
- package/dist/infra/git/types.d.ts +1 -0
- package/dist/infra/git/types.d.ts.map +1 -1
- package/dist/infra/github/GitHubProvider.d.ts +1 -0
- package/dist/infra/github/GitHubProvider.d.ts.map +1 -1
- package/dist/infra/github/GitHubProvider.js +4 -1
- package/dist/infra/github/GitHubProvider.js.map +1 -1
- package/dist/infra/github/pr.d.ts +1 -0
- package/dist/infra/github/pr.d.ts.map +1 -1
- package/dist/infra/github/pr.js +19 -0
- package/dist/infra/github/pr.js.map +1 -1
- package/dist/infra/gitlab/GitLabProvider.d.ts +1 -0
- package/dist/infra/gitlab/GitLabProvider.d.ts.map +1 -1
- package/dist/infra/gitlab/GitLabProvider.js +4 -1
- package/dist/infra/gitlab/GitLabProvider.js.map +1 -1
- package/dist/infra/gitlab/pr.d.ts +1 -0
- package/dist/infra/gitlab/pr.d.ts.map +1 -1
- package/dist/infra/gitlab/pr.js +19 -0
- package/dist/infra/gitlab/pr.js.map +1 -1
- package/dist/infra/mock/client.d.ts.map +1 -1
- package/dist/infra/mock/types.d.ts +1 -1
- package/dist/infra/mock/types.d.ts.map +1 -1
- package/dist/infra/opencode/OpenCodeStreamHandler.d.ts +1 -1
- package/dist/infra/opencode/OpenCodeStreamHandler.d.ts.map +1 -1
- package/dist/infra/opencode/types.d.ts +1 -1
- package/dist/infra/opencode/types.d.ts.map +1 -1
- package/dist/infra/providers/types.d.ts +2 -1
- package/dist/infra/providers/types.d.ts.map +1 -1
- package/dist/infra/task/taskConfigSerialization.d.ts +1 -1
- package/dist/infra/task/taskConfigSerialization.d.ts.map +1 -1
- package/dist/infra/task/taskConfigSerialization.js +30 -3
- package/dist/infra/task/taskConfigSerialization.js.map +1 -1
- package/dist/infra/task/taskExecutionSchemas.d.ts +2 -2
- package/dist/infra/task/taskLifecycleService.d.ts +1 -0
- package/dist/infra/task/taskLifecycleService.d.ts.map +1 -1
- package/dist/infra/task/taskLifecycleService.js +22 -3
- package/dist/infra/task/taskLifecycleService.js.map +1 -1
- package/dist/infra/task/taskRecordMutations.d.ts +1 -1
- package/dist/infra/task/taskRecordMutations.d.ts.map +1 -1
- package/dist/infra/task/taskRecordMutations.js +5 -2
- package/dist/infra/task/taskRecordMutations.js.map +1 -1
- package/dist/infra/task/taskRecordSchemas.d.ts +2 -2
- package/dist/infra/workflow/system/DefaultSystemStepServices.d.ts.map +1 -1
- package/dist/infra/workflow/system/DefaultSystemStepServices.js +3 -1
- package/dist/infra/workflow/system/DefaultSystemStepServices.js.map +1 -1
- package/dist/infra/workflow/system/system-issue-input-resolver.d.ts +8 -2
- package/dist/infra/workflow/system/system-issue-input-resolver.d.ts.map +1 -1
- package/dist/infra/workflow/system/system-issue-input-resolver.js +140 -6
- package/dist/infra/workflow/system/system-issue-input-resolver.js.map +1 -1
- package/dist/infra/workflow/system/system-pr-effects.d.ts +3 -0
- package/dist/infra/workflow/system/system-pr-effects.d.ts.map +1 -1
- package/dist/infra/workflow/system/system-pr-effects.js +8 -0
- package/dist/infra/workflow/system/system-pr-effects.js.map +1 -1
- package/dist/infra/workflow/system/system-selection-helpers.d.ts +2 -0
- package/dist/infra/workflow/system/system-selection-helpers.d.ts.map +1 -1
- package/dist/infra/workflow/system/system-selection-helpers.js +15 -0
- package/dist/infra/workflow/system/system-selection-helpers.js.map +1 -1
- package/dist/shared/i18n/labels_en.yaml +2 -0
- package/dist/shared/i18n/labels_ja.yaml +2 -0
- package/dist/shared/prompts/en/perform_phase1_message.md +8 -7
- package/dist/shared/prompts/en/perform_phase2_message.md +4 -3
- package/dist/shared/prompts/ja/perform_phase1_message.md +8 -7
- package/dist/shared/prompts/ja/perform_phase2_message.md +4 -3
- package/dist/shared/types/agent-failure.d.ts +23 -0
- package/dist/shared/types/agent-failure.d.ts.map +1 -0
- package/dist/shared/types/agent-failure.js +72 -0
- package/dist/shared/types/agent-failure.js.map +1 -0
- package/dist/shared/types/provider.d.ts +2 -0
- package/dist/shared/types/provider.d.ts.map +1 -1
- package/dist/shared/utils/types.d.ts +4 -0
- package/dist/shared/utils/types.d.ts.map +1 -1
- package/dist/shared/utils/types.js +0 -6
- package/dist/shared/utils/types.js.map +1 -1
- package/package.json +1 -1
|
@@ -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
|
-
-
|
|
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 == "
|
|
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
|
-
-
|
|
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 == "
|
|
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
|
-
-
|
|
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 == "
|
|
186
|
-
next:
|
|
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:
|
|
220
|
+
- name: reject_pr
|
|
191
221
|
mode: system
|
|
192
222
|
effects:
|
|
193
|
-
- type:
|
|
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.
|
|
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
|
|
@@ -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
|
-
-
|
|
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 == "
|
|
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
|
-
-
|
|
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 == "
|
|
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
|
-
-
|
|
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 == "
|
|
186
|
-
next:
|
|
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:
|
|
220
|
+
- name: reject_pr
|
|
191
221
|
mode: system
|
|
192
222
|
effects:
|
|
193
|
-
- type:
|
|
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.
|
|
226
|
+
- when: effect.reject_pr.close_pr.success == true
|
|
198
227
|
next: wait_before_next_scan
|
|
199
228
|
- when: "true"
|
|
200
229
|
next: ABORT
|