takt 0.2.3 → 0.3.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 (165) hide show
  1. package/README.md +161 -133
  2. package/dist/agents/runner.d.ts +2 -4
  3. package/dist/agents/runner.d.ts.map +1 -1
  4. package/dist/agents/runner.js +6 -35
  5. package/dist/agents/runner.js.map +1 -1
  6. package/dist/claude/client.d.ts +31 -6
  7. package/dist/claude/client.d.ts.map +1 -1
  8. package/dist/claude/client.js +78 -30
  9. package/dist/claude/client.js.map +1 -1
  10. package/dist/claude/index.d.ts +1 -1
  11. package/dist/claude/index.d.ts.map +1 -1
  12. package/dist/claude/index.js +1 -1
  13. package/dist/claude/index.js.map +1 -1
  14. package/dist/cli.d.ts.map +1 -1
  15. package/dist/cli.js +22 -6
  16. package/dist/cli.js.map +1 -1
  17. package/dist/codex/client.d.ts +0 -1
  18. package/dist/codex/client.d.ts.map +1 -1
  19. package/dist/codex/client.js +3 -6
  20. package/dist/codex/client.js.map +1 -1
  21. package/dist/commands/addTask.d.ts.map +1 -1
  22. package/dist/commands/addTask.js +17 -2
  23. package/dist/commands/addTask.js.map +1 -1
  24. package/dist/commands/eject.d.ts +13 -0
  25. package/dist/commands/eject.d.ts.map +1 -0
  26. package/dist/commands/eject.js +105 -0
  27. package/dist/commands/eject.js.map +1 -0
  28. package/dist/commands/help.d.ts.map +1 -1
  29. package/dist/commands/help.js +9 -2
  30. package/dist/commands/help.js.map +1 -1
  31. package/dist/commands/index.d.ts +1 -0
  32. package/dist/commands/index.d.ts.map +1 -1
  33. package/dist/commands/index.js +1 -0
  34. package/dist/commands/index.js.map +1 -1
  35. package/dist/commands/refreshBuiltin.d.ts +4 -4
  36. package/dist/commands/refreshBuiltin.d.ts.map +1 -1
  37. package/dist/commands/refreshBuiltin.js +13 -29
  38. package/dist/commands/refreshBuiltin.js.map +1 -1
  39. package/dist/commands/workflowExecution.d.ts.map +1 -1
  40. package/dist/commands/workflowExecution.js +85 -18
  41. package/dist/commands/workflowExecution.js.map +1 -1
  42. package/dist/config/agentLoader.d.ts +3 -1
  43. package/dist/config/agentLoader.d.ts.map +1 -1
  44. package/dist/config/agentLoader.js +17 -24
  45. package/dist/config/agentLoader.js.map +1 -1
  46. package/dist/config/globalConfig.d.ts +2 -0
  47. package/dist/config/globalConfig.d.ts.map +1 -1
  48. package/dist/config/globalConfig.js +14 -0
  49. package/dist/config/globalConfig.js.map +1 -1
  50. package/dist/config/initialization.d.ts +7 -5
  51. package/dist/config/initialization.d.ts.map +1 -1
  52. package/dist/config/initialization.js +23 -21
  53. package/dist/config/initialization.js.map +1 -1
  54. package/dist/config/paths.d.ts +5 -0
  55. package/dist/config/paths.d.ts.map +1 -1
  56. package/dist/config/paths.js +9 -0
  57. package/dist/config/paths.js.map +1 -1
  58. package/dist/config/workflowLoader.d.ts +6 -4
  59. package/dist/config/workflowLoader.d.ts.map +1 -1
  60. package/dist/config/workflowLoader.js +190 -35
  61. package/dist/config/workflowLoader.js.map +1 -1
  62. package/dist/github/issue.d.ts +72 -0
  63. package/dist/github/issue.d.ts.map +1 -0
  64. package/dist/github/issue.js +143 -0
  65. package/dist/github/issue.js.map +1 -0
  66. package/dist/models/index.d.ts +1 -1
  67. package/dist/models/index.d.ts.map +1 -1
  68. package/dist/models/index.js.map +1 -1
  69. package/dist/models/schemas.d.ts +164 -90
  70. package/dist/models/schemas.d.ts.map +1 -1
  71. package/dist/models/schemas.js +77 -51
  72. package/dist/models/schemas.js.map +1 -1
  73. package/dist/models/types.d.ts +51 -20
  74. package/dist/models/types.d.ts.map +1 -1
  75. package/dist/providers/claude.js +2 -2
  76. package/dist/providers/claude.js.map +1 -1
  77. package/dist/providers/codex.d.ts.map +1 -1
  78. package/dist/providers/codex.js +0 -2
  79. package/dist/providers/codex.js.map +1 -1
  80. package/dist/providers/index.d.ts +2 -1
  81. package/dist/providers/index.d.ts.map +1 -1
  82. package/dist/providers/index.js.map +1 -1
  83. package/dist/resources/index.d.ts +3 -22
  84. package/dist/resources/index.d.ts.map +1 -1
  85. package/dist/resources/index.js +3 -73
  86. package/dist/resources/index.js.map +1 -1
  87. package/dist/utils/session.d.ts +74 -10
  88. package/dist/utils/session.d.ts.map +1 -1
  89. package/dist/utils/session.js +101 -51
  90. package/dist/utils/session.js.map +1 -1
  91. package/dist/workflow/engine.d.ts +34 -1
  92. package/dist/workflow/engine.d.ts.map +1 -1
  93. package/dist/workflow/engine.js +228 -36
  94. package/dist/workflow/engine.js.map +1 -1
  95. package/dist/workflow/index.d.ts +1 -1
  96. package/dist/workflow/index.d.ts.map +1 -1
  97. package/dist/workflow/index.js +1 -1
  98. package/dist/workflow/index.js.map +1 -1
  99. package/dist/workflow/instruction-builder.d.ts +87 -18
  100. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  101. package/dist/workflow/instruction-builder.js +404 -57
  102. package/dist/workflow/instruction-builder.js.map +1 -1
  103. package/dist/workflow/parallel-logger.d.ts +76 -0
  104. package/dist/workflow/parallel-logger.d.ts.map +1 -0
  105. package/dist/workflow/parallel-logger.js +173 -0
  106. package/dist/workflow/parallel-logger.js.map +1 -0
  107. package/dist/workflow/phase-runner.d.ts +40 -0
  108. package/dist/workflow/phase-runner.d.ts.map +1 -0
  109. package/dist/workflow/phase-runner.js +69 -0
  110. package/dist/workflow/phase-runner.js.map +1 -0
  111. package/dist/workflow/rule-evaluator.d.ts +64 -0
  112. package/dist/workflow/rule-evaluator.d.ts.map +1 -0
  113. package/dist/workflow/rule-evaluator.js +178 -0
  114. package/dist/workflow/rule-evaluator.js.map +1 -0
  115. package/dist/workflow/rule-utils.d.ts +13 -0
  116. package/dist/workflow/rule-utils.d.ts.map +1 -0
  117. package/dist/workflow/rule-utils.js +17 -0
  118. package/dist/workflow/rule-utils.js.map +1 -0
  119. package/dist/workflow/transitions.d.ts +5 -13
  120. package/dist/workflow/transitions.d.ts.map +1 -1
  121. package/dist/workflow/transitions.js +8 -78
  122. package/dist/workflow/transitions.js.map +1 -1
  123. package/dist/workflow/types.d.ts +2 -1
  124. package/dist/workflow/types.d.ts.map +1 -1
  125. package/package.json +1 -1
  126. package/resources/global/en/agents/default/ai-antipattern-reviewer.md +71 -15
  127. package/resources/global/en/agents/default/{architect.md → architecture-reviewer.md} +144 -44
  128. package/resources/global/en/agents/default/coder.md +4 -4
  129. package/resources/global/en/agents/default/planner.md +16 -9
  130. package/resources/global/en/agents/default/{security.md → security-reviewer.md} +23 -5
  131. package/resources/global/en/agents/default/supervisor.md +13 -2
  132. package/resources/global/en/agents/expert/frontend-reviewer.md +0 -17
  133. package/resources/global/en/agents/expert/qa-reviewer.md +0 -16
  134. package/resources/global/en/agents/expert/security-reviewer.md +0 -16
  135. package/resources/global/en/agents/expert-cqrs/cqrs-es-reviewer.md +0 -17
  136. package/resources/global/en/agents/templates/coder.md +128 -0
  137. package/resources/global/en/agents/templates/planner.md +44 -0
  138. package/resources/global/en/agents/templates/reviewer.md +57 -0
  139. package/resources/global/en/agents/templates/supervisor.md +64 -0
  140. package/resources/global/en/workflows/default.yaml +232 -772
  141. package/resources/global/en/workflows/expert-cqrs.yaml +319 -698
  142. package/resources/global/en/workflows/expert.yaml +348 -723
  143. package/resources/global/en/workflows/magi.yaml +45 -52
  144. package/resources/global/en/workflows/research.yaml +18 -99
  145. package/resources/global/en/workflows/simple.yaml +152 -421
  146. package/resources/global/ja/agents/default/ai-antipattern-reviewer.md +71 -15
  147. package/resources/global/ja/agents/default/{architect.md → architecture-reviewer.md} +148 -48
  148. package/resources/global/ja/agents/default/coder.md +4 -4
  149. package/resources/global/ja/agents/default/planner.md +16 -9
  150. package/resources/global/ja/agents/default/{security.md → security-reviewer.md} +23 -5
  151. package/resources/global/ja/agents/default/supervisor.md +13 -2
  152. package/resources/global/ja/agents/expert/frontend-reviewer.md +0 -18
  153. package/resources/global/ja/agents/expert/qa-reviewer.md +0 -16
  154. package/resources/global/ja/agents/expert/security-reviewer.md +0 -16
  155. package/resources/global/ja/agents/expert-cqrs/cqrs-es-reviewer.md +0 -18
  156. package/resources/global/ja/agents/templates/coder.md +128 -0
  157. package/resources/global/ja/agents/templates/planner.md +44 -0
  158. package/resources/global/ja/agents/templates/reviewer.md +57 -0
  159. package/resources/global/ja/agents/templates/supervisor.md +64 -0
  160. package/resources/global/ja/workflows/default.yaml +227 -773
  161. package/resources/global/ja/workflows/expert-cqrs.yaml +309 -833
  162. package/resources/global/ja/workflows/expert.yaml +325 -712
  163. package/resources/global/ja/workflows/magi.yaml +45 -52
  164. package/resources/global/ja/workflows/research.yaml +18 -99
  165. package/resources/global/ja/workflows/simple.yaml +145 -415
package/README.md CHANGED
@@ -11,6 +11,7 @@ TAKT is built with TAKT (dogfooding).
11
11
  ## Requirements
12
12
 
13
13
  - [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or Codex must be installed and configured
14
+ - [GitHub CLI](https://cli.github.com/) (`gh`) — required only for `takt "#N"` (GitHub Issue execution)
14
15
 
15
16
  TAKT supports both Claude Code and Codex as providers; you can choose the provider during setup.
16
17
 
@@ -26,6 +27,9 @@ npm install -g takt
26
27
  # Run a task (will prompt for workflow selection and optional isolated clone)
27
28
  takt "Add a login feature"
28
29
 
30
+ # Run a GitHub issue as a task
31
+ takt "#6"
32
+
29
33
  # Add a task to the queue
30
34
  takt /add-task "Fix the login bug"
31
35
 
@@ -75,9 +79,9 @@ Choose `y` to run in a `git clone --shared` isolated environment, keeping your w
75
79
 
76
80
  | Workflow | Best for |
77
81
  |----------|----------|
78
- | `default` | Full development tasks. Used for TAKT's own development. Multi-stage review with fix loops. |
82
+ | `default` | Full development tasks. Used for TAKT's own development. Multi-stage review with parallel architect + security review. |
79
83
  | `simple` | Lightweight tasks like README updates or small fixes. Reviews without fix loops. |
80
- | `expert-review` / `expert-cqrs` | Web development projects. Multi-expert review (CQRS, Frontend, Security, QA). |
84
+ | `expert` / `expert-cqrs` | Web development projects. Sequential multi-expert review with fix loops (`expert`: Architecture, Frontend, Security, QA; `expert-cqrs`: CQRS+ES, Frontend, Security, QA). |
81
85
  | `research` | Research and investigation. Autonomous research without asking questions. |
82
86
  | `magi` | Fun deliberation. Three AI personas analyze and vote (Evangelion-inspired). |
83
87
 
@@ -86,83 +90,129 @@ Choose `y` to run in a `git clone --shared` isolated environment, keeping your w
86
90
  | Command | Alias | Description |
87
91
  |---------|-------|-------------|
88
92
  | `takt "task"` | | Execute task with current workflow (session auto-continued) |
93
+ | `takt "#N"` | | Execute GitHub issue #N as a task |
89
94
  | `takt /run-tasks` | `/run` | Run all pending tasks from `.takt/tasks/` |
90
95
  | `takt /watch` | | Watch `.takt/tasks/` and auto-execute tasks (stays resident) |
91
96
  | `takt /add-task` | `/add` | Add a new task interactively (YAML format, multiline supported) |
92
97
  | `takt /list-tasks` | `/list` | List task branches (try merge, merge & cleanup, or delete) |
93
98
  | `takt /switch` | `/sw` | Switch workflow interactively |
94
99
  | `takt /clear` | | Clear agent conversation sessions |
100
+ | `takt /eject` | | Copy builtin workflow/agents to `~/.takt/` for customization |
95
101
  | `takt /refresh-builtin` | | Update builtin agents/workflows to latest version |
96
102
  | `takt /config` | | Configure permission mode |
97
103
  | `takt /help` | | Show help |
98
104
 
99
105
  ## Workflows
100
106
 
101
- TAKT uses YAML-based workflow definitions. Place them in:
102
- - `~/.takt/workflows/*.yaml`
107
+ TAKT uses YAML-based workflow definitions with rule-based routing. Builtin workflows are embedded in the package; user workflows in `~/.takt/workflows/` take priority. Use `/eject` to copy a builtin to `~/.takt/` for customization.
103
108
 
104
109
  ### Example Workflow
105
110
 
106
111
  ```yaml
107
112
  name: default
108
113
  max_iterations: 10
114
+ initial_step: plan
109
115
 
110
116
  steps:
111
117
  - name: plan
112
- agent: planner
113
- provider: claude # Optional: claude or codex
114
- model: opus # Claude: opus/sonnet/haiku, Codex: gpt-5.2-codex/gpt-5.1-codex
118
+ agent: ../agents/default/planner.md
119
+ model: opus
120
+ edit: false
121
+ rules:
122
+ - condition: Plan complete
123
+ next: implement
115
124
  instruction_template: |
116
- {task}
117
- transitions:
118
- - condition: done
119
- next_step: implement
125
+ Analyze the request and create an implementation plan.
120
126
 
121
127
  - name: implement
122
- agent: coder
123
- provider: codex
124
- model: gpt-5.2-codex # Codex model example
128
+ agent: ../agents/default/coder.md
129
+ edit: true
130
+ permission_mode: acceptEdits
131
+ rules:
132
+ - condition: Implementation complete
133
+ next: review
134
+ - condition: Cannot proceed
135
+ next: ABORT
125
136
  instruction_template: |
126
- {task}
127
- transitions:
128
- - condition: done
129
- next_step: review
130
- - condition: blocked
131
- next_step: ABORT
137
+ Implement based on the plan.
132
138
 
133
139
  - name: review
134
- agent: architect
135
- model: sonnet # Model alias (no provider = uses global default)
136
- transitions:
137
- - condition: approved
138
- next_step: COMPLETE
139
- - condition: rejected
140
- next_step: implement
140
+ agent: ../agents/default/architecture-reviewer.md
141
+ edit: false
142
+ rules:
143
+ - condition: Approved
144
+ next: COMPLETE
145
+ - condition: Needs fix
146
+ next: implement
147
+ instruction_template: |
148
+ Review the implementation for architecture and code quality.
149
+ ```
150
+
151
+ ### Parallel Steps
152
+
153
+ Steps can execute sub-steps concurrently with aggregate evaluation:
154
+
155
+ ```yaml
156
+ - name: reviewers
157
+ parallel:
158
+ - name: arch-review
159
+ agent: ../agents/default/architecture-reviewer.md
160
+ rules:
161
+ - condition: approved
162
+ - condition: needs_fix
163
+ instruction_template: |
164
+ Review architecture and code quality.
165
+ - name: security-review
166
+ agent: ../agents/default/security-reviewer.md
167
+ rules:
168
+ - condition: approved
169
+ - condition: needs_fix
170
+ instruction_template: |
171
+ Review for security vulnerabilities.
172
+ rules:
173
+ - condition: all("approved")
174
+ next: supervise
175
+ - condition: any("needs_fix")
176
+ next: fix
141
177
  ```
142
178
 
179
+ - `all("X")`: true if ALL sub-steps matched condition X
180
+ - `any("X")`: true if ANY sub-step matched condition X
181
+ - Sub-step `rules` define possible outcomes; `next` is optional (parent handles routing)
182
+
183
+ ### Rule Condition Types
184
+
185
+ | Type | Syntax | Description |
186
+ |------|--------|-------------|
187
+ | Tag-based | `"condition text"` | Agent outputs `[STEP:N]` tag, matched by index |
188
+ | AI judge | `ai("condition text")` | AI evaluates the condition against agent output |
189
+ | Aggregate | `all("X")` / `any("X")` | Aggregates parallel sub-step results |
190
+
143
191
  ## Built-in Workflows
144
192
 
145
193
  TAKT ships with several built-in workflows:
146
194
 
147
195
  | Workflow | Description |
148
196
  |----------|-------------|
149
- | `default` | Full development workflow: plan → implement → architect review → AI review security review → supervisor approval. Includes fix loops for each review stage. |
197
+ | `default` | Full development workflow: plan → implement → AI review → parallel reviewers (architect + security) → supervisor approval. Includes fix loops for each review stage. |
150
198
  | `simple` | Simplified version of default: plan → implement → architect review → AI review → supervisor. No intermediate fix steps. |
151
199
  | `research` | Research workflow: planner → digger → supervisor. Autonomously researches topics without asking questions. |
152
- | `expert-review` | Comprehensive review with domain experts: CQRS+ES, Frontend, AI, Security, QA reviews with fix loops. |
153
- | `expert-cqrs` | Expert review focused on CQRS+ES, Frontend, AI, Security, and QA. Plan implement → multi-expert review → supervise. |
200
+ | `expert` | Sequential review with domain experts: Architecture, Frontend, Security, QA reviews with fix loops. |
201
+ | `expert-cqrs` | Sequential review with domain experts: CQRS+ES, Frontend, Security, QA reviews with fix loops. |
154
202
  | `magi` | Deliberation system inspired by Evangelion. Three AI personas (MELCHIOR, BALTHASAR, CASPER) analyze and vote. |
155
203
 
156
204
  Switch between workflows with `takt /switch`.
157
205
 
158
206
  ## Built-in Agents
159
207
 
160
- - **coder** - Implements features and fixes bugs
161
- - **architect** - Reviews code and provides feedback
162
- - **supervisor** - Final verification and approval
163
- - **planner** - Task analysis and implementation planning
164
- - **ai-reviewer** - AI-generated code quality review
165
- - **security** - Security vulnerability assessment
208
+ | Agent | Description |
209
+ |-------|-------------|
210
+ | **planner** | Task analysis, spec investigation, and implementation planning |
211
+ | **coder** | Implements features and fixes bugs |
212
+ | **ai-antipattern-reviewer** | Reviews for AI-specific anti-patterns (hallucinated APIs, incorrect assumptions, scope creep) |
213
+ | **architecture-reviewer** | Reviews architecture and code quality, verifies spec compliance |
214
+ | **security-reviewer** | Security vulnerability assessment |
215
+ | **supervisor** | Final verification, validation, and approval |
166
216
 
167
217
  ## Custom Agents
168
218
 
@@ -175,64 +225,54 @@ agents:
175
225
  allowed_tools: [Read, Glob, Grep]
176
226
  provider: claude # Optional: claude or codex
177
227
  model: opus # Claude: opus/sonnet/haiku or full name (claude-opus-4-5-20251101)
178
- status_patterns:
179
- approved: "\\[APPROVE\\]"
180
- rejected: "\\[REJECT\\]"
181
-
182
- - name: my-codex-agent
183
- prompt_file: .takt/prompts/analyzer.md
184
- provider: codex
185
- model: gpt-5.2-codex # Codex: gpt-5.2-codex, gpt-5.1-codex, etc.
186
228
  ```
187
229
 
188
- ## Model Selection
230
+ Or create agent prompt files as Markdown:
231
+
232
+ ```markdown
233
+ # ~/.takt/agents/my-agents/reviewer.md
189
234
 
190
- ### Claude Models
235
+ You are a code reviewer focused on security.
191
236
 
192
- You can specify models using either **aliases** or **full model names**:
237
+ ## Your Role
238
+ - Check for security vulnerabilities
239
+ - Verify input validation
240
+ - Review authentication logic
241
+ ```
193
242
 
194
- **Aliases** (recommended for simplicity):
195
- - `opus` - Claude Opus 4.5 (highest reasoning capability)
196
- - `sonnet` - Claude Sonnet 4.5 (balanced, best for most tasks)
197
- - `haiku` - Claude Haiku 4.5 (fast and efficient)
198
- - `opusplan` - Opus for planning, Sonnet for execution
199
- - `default` - Recommended model for your account type
243
+ ## Model Selection
244
+
245
+ The `model` field in workflow steps, agent configs, and global config is passed directly to the provider (Claude Code CLI or Codex SDK). TAKT does not resolve model aliases — the provider handles that.
246
+
247
+ ### Claude Code
200
248
 
201
- **Full model names** (recommended for production):
202
- - `claude-opus-4-5-20251101`
203
- - `claude-sonnet-4-5-20250929`
204
- - `claude-haiku-4-5-20250101`
249
+ Claude Code supports aliases (`opus`, `sonnet`, `haiku`, `opusplan`, `default`) and full model names (e.g., `claude-sonnet-4-5-20250929`). See [Claude Code documentation](https://docs.anthropic.com/en/docs/claude-code) for available models.
205
250
 
206
- ### Codex Models
251
+ ### Codex
207
252
 
208
- Available Codex models:
209
- - `gpt-5.2-codex` - Latest agentic coding model (default)
210
- - `gpt-5.1-codex` - Previous generation
211
- - `gpt-5.1-codex-max` - Optimized for long-running tasks
212
- - `gpt-5.1-codex-mini` - Smaller, cost-effective version
213
- - `codex-1` - Specialized model aligned with coding preferences
253
+ The model string is passed to the Codex SDK. Defaults to `codex` if not specified. See Codex documentation for available models.
214
254
 
215
255
  ## Project Structure
216
256
 
217
257
  ```
218
258
  ~/.takt/
219
259
  ├── config.yaml # Global config (provider, model, workflows, etc.)
220
- ├── workflows/ # Workflow definitions
221
- └── agents/ # Agent prompt files
260
+ ├── workflows/ # User workflow definitions (override builtins)
261
+ └── agents/ # User agent prompt files
222
262
 
223
263
  .takt/ # Project-level config
224
264
  ├── agents.yaml # Custom agent definitions
225
265
  ├── tasks/ # Pending task files (.yaml, .md)
226
266
  ├── completed/ # Completed tasks with reports
227
- ├── worktree-meta/ # Metadata for task branches
228
- ├── worktree-sessions/ # Per-clone agent session storage
229
267
  ├── reports/ # Execution reports (auto-generated)
230
- └── logs/ # Session logs (incremental)
268
+ └── logs/ # Session logs in NDJSON format
231
269
  ├── latest.json # Pointer to current/latest session
232
270
  ├── previous.json # Pointer to previous session
233
- └── {sessionId}.json # Full session log per workflow run
271
+ └── {sessionId}.jsonl # NDJSON session log per workflow run
234
272
  ```
235
273
 
274
+ Builtin resources are embedded in the npm package (`dist/resources/`). User files in `~/.takt/` take priority.
275
+
236
276
  ### Global Configuration
237
277
 
238
278
  Configure default provider and model in `~/.takt/config.yaml`:
@@ -268,67 +308,59 @@ This interactive flow ensures each task runs with the right workflow and isolati
268
308
 
269
309
  ### Adding Custom Workflows
270
310
 
271
- Create your own workflow by adding YAML files to `~/.takt/workflows/`:
311
+ Create your own workflow by adding YAML files to `~/.takt/workflows/`, or use `/eject` to customize a builtin:
312
+
313
+ ```bash
314
+ # Copy the default workflow to ~/.takt/workflows/ for editing
315
+ takt /eject default
316
+ ```
272
317
 
273
318
  ```yaml
274
319
  # ~/.takt/workflows/my-workflow.yaml
275
320
  name: my-workflow
276
321
  description: My custom workflow
277
-
278
322
  max_iterations: 5
323
+ initial_step: analyze
279
324
 
280
325
  steps:
281
326
  - name: analyze
282
327
  agent: ~/.takt/agents/my-agents/analyzer.md
328
+ edit: false
329
+ rules:
330
+ - condition: Analysis complete
331
+ next: implement
283
332
  instruction_template: |
284
- Analyze this request: {task}
285
- transitions:
286
- - condition: done
287
- next_step: implement
333
+ Analyze this request thoroughly.
288
334
 
289
335
  - name: implement
290
336
  agent: ~/.takt/agents/default/coder.md
291
- instruction_template: |
292
- Implement based on the analysis: {previous_response}
337
+ edit: true
338
+ permission_mode: acceptEdits
293
339
  pass_previous_response: true
294
- transitions:
295
- - condition: done
296
- next_step: COMPLETE
340
+ rules:
341
+ - condition: Done
342
+ next: COMPLETE
343
+ instruction_template: |
344
+ Implement based on the analysis.
297
345
  ```
298
346
 
347
+ > **Note**: `{task}`, `{previous_response}`, and `{user_inputs}` are auto-injected into instructions. You only need explicit placeholders if you want to control their position in the template.
348
+
299
349
  ### Specifying Agents by Path
300
350
 
301
351
  Agents are specified using file paths in workflow definitions:
302
352
 
303
353
  ```yaml
304
- # Use built-in agents
305
- agent: ~/.takt/agents/default/coder.md
306
- agent: ~/.takt/agents/magi/melchior.md
354
+ # Relative to workflow file directory
355
+ agent: ../agents/default/coder.md
307
356
 
308
- # Use project-local agents
309
- agent: ./.takt/agents/my-reviewer.md
357
+ # Home directory
358
+ agent: ~/.takt/agents/default/coder.md
310
359
 
311
- # Use absolute paths
360
+ # Absolute paths
312
361
  agent: /path/to/custom/agent.md
313
362
  ```
314
363
 
315
- Create custom agent prompts as Markdown files:
316
-
317
- ```markdown
318
- # ~/.takt/agents/my-agents/reviewer.md
319
-
320
- You are a code reviewer focused on security.
321
-
322
- ## Your Role
323
- - Check for security vulnerabilities
324
- - Verify input validation
325
- - Review authentication logic
326
-
327
- ## Output Format
328
- - [REVIEWER:APPROVE] if code is secure
329
- - [REVIEWER:REJECT] if issues found (list them)
330
- ```
331
-
332
364
  ### Task Management
333
365
 
334
366
  TAKT supports batch task processing through task files in `.takt/tasks/`. Both `.yaml`/`.yml` and `.md` file formats are supported.
@@ -339,6 +371,9 @@ TAKT supports batch task processing through task files in `.takt/tasks/`. Both `
339
371
  # Quick add (no isolation)
340
372
  takt /add-task "Add authentication feature"
341
373
 
374
+ # Add a GitHub issue as a task
375
+ takt /add-task "#6"
376
+
342
377
  # Interactive mode (prompts for isolation, branch, workflow options)
343
378
  takt /add-task
344
379
  ```
@@ -416,11 +451,13 @@ Lists all `takt/`-prefixed branches with file change counts. For each branch you
416
451
 
417
452
  ### Session Logs
418
453
 
419
- TAKT writes session logs incrementally to `.takt/logs/`. Logs are saved at workflow start, after each step, and at workflow end — so even if the process crashes mid-execution, partial logs are preserved.
454
+ TAKT writes session logs in NDJSON (`.jsonl`) format to `.takt/logs/`. Each record is appended atomically, so even if the process crashes mid-execution, partial logs are preserved and logs can be tailed in real-time with `tail -f`.
420
455
 
421
456
  - `.takt/logs/latest.json` - Pointer to the current (or most recent) session
422
457
  - `.takt/logs/previous.json` - Pointer to the previous session
423
- - `.takt/logs/{sessionId}.json` - Full session log with step history
458
+ - `.takt/logs/{sessionId}.jsonl` - NDJSON session log with step history
459
+
460
+ Record types: `workflow_start`, `step_start`, `step_complete`, `workflow_complete`, `workflow_abort`.
424
461
 
425
462
  Agents can read `previous.json` to pick up context from a prior run. Session continuity is automatic — simply run `takt "task"` to continue where the previous session left off.
426
463
 
@@ -430,58 +467,49 @@ Available variables in `instruction_template`:
430
467
 
431
468
  | Variable | Description |
432
469
  |----------|-------------|
433
- | `{task}` | Original user request |
470
+ | `{task}` | Original user request (auto-injected if not in template) |
434
471
  | `{iteration}` | Workflow-wide turn count (total steps executed) |
435
472
  | `{max_iterations}` | Maximum iterations allowed |
436
473
  | `{step_iteration}` | Per-step iteration count (how many times THIS step has run) |
437
- | `{previous_response}` | Previous step's output (requires `pass_previous_response: true`) |
438
- | `{user_inputs}` | Additional user inputs during workflow |
439
- | `{git_diff}` | Current git diff (uncommitted changes) |
440
- | `{report_dir}` | Report directory name (e.g., `20250126-143052-task-summary`) |
474
+ | `{previous_response}` | Previous step's output (auto-injected if not in template) |
475
+ | `{user_inputs}` | Additional user inputs during workflow (auto-injected if not in template) |
476
+ | `{report_dir}` | Report directory path (e.g., `.takt/reports/20250126-143052-task-summary`) |
477
+ | `{report:filename}` | Resolves to `{report_dir}/filename` (e.g., `{report:00-plan.md}`) |
441
478
 
442
479
  ### Designing Workflows
443
480
 
444
- Each workflow step requires three key elements:
481
+ Each workflow step requires:
445
482
 
446
483
  **1. Agent** - A Markdown file containing the system prompt:
447
484
 
448
485
  ```yaml
449
- agent: ~/.takt/agents/default/coder.md # Path to agent prompt file
450
- agent_name: coder # Display name (optional)
451
- ```
452
-
453
- **2. Status Rules** - Define how the agent signals completion. Agents output status markers like `[CODER:DONE]` or `[ARCHITECT:REJECT]` that TAKT detects to drive transitions:
454
-
455
- ```yaml
456
- status_rules_prompt: |
457
- Your final output MUST include a status tag:
458
- - `[CODER:DONE]` if implementation is complete
459
- - `[CODER:BLOCKED]` if you cannot proceed
486
+ agent: ../agents/default/coder.md # Path to agent prompt file
487
+ agent_name: coder # Display name (optional)
460
488
  ```
461
489
 
462
- **3. Transitions** - Route to the next step based on status:
490
+ **2. Rules** - Define how the step routes to the next step. The instruction builder auto-injects status output rules so agents know what tags to output:
463
491
 
464
492
  ```yaml
465
- transitions:
466
- - condition: done # Maps to status tag DONE
467
- next_step: review # Go to review step
468
- - condition: blocked # Maps to status tag BLOCKED
469
- next_step: ABORT # End workflow with failure
493
+ rules:
494
+ - condition: "Implementation complete"
495
+ next: review
496
+ - condition: "Cannot proceed"
497
+ next: ABORT
470
498
  ```
471
499
 
472
- Available transition conditions: `done`, `blocked`, `approved`, `rejected`, `improve`, `answer`, `always`.
473
- Special next_step values: `COMPLETE` (success), `ABORT` (failure).
500
+ Special `next` values: `COMPLETE` (success), `ABORT` (failure).
474
501
 
475
- **Step options:**
502
+ **3. Step options:**
476
503
 
477
504
  | Option | Default | Description |
478
505
  |--------|---------|-------------|
506
+ | `edit` | - | Whether the step can edit project files (`true`/`false`) |
479
507
  | `pass_previous_response` | `true` | Pass previous step's output to `{previous_response}` |
480
- | `on_no_status` | - | Behavior when no status is detected: `complete`, `continue`, `stay` |
481
508
  | `allowed_tools` | - | List of tools the agent can use (Read, Glob, Grep, Edit, Write, Bash, etc.) |
482
509
  | `provider` | - | Override provider for this step (`claude` or `codex`) |
483
510
  | `model` | - | Override model for this step |
484
511
  | `permission_mode` | `default` | Permission mode: `default`, `acceptEdits`, or `bypassPermissions` |
512
+ | `report` | - | Report file configuration (name, format) for auto-generated reports |
485
513
 
486
514
  ## API Usage
487
515
 
@@ -14,8 +14,8 @@ export interface RunAgentOptions {
14
14
  agentPath?: string;
15
15
  /** Allowed tools for this agent run */
16
16
  allowedTools?: string[];
17
- /** Status output rules to inject into system prompt */
18
- statusRulesPrompt?: string;
17
+ /** Maximum number of agentic turns */
18
+ maxTurns?: number;
19
19
  /** Permission mode for tool execution (from workflow step) */
20
20
  permissionMode?: PermissionMode;
21
21
  onStream?: StreamCallback;
@@ -24,8 +24,6 @@ export interface RunAgentOptions {
24
24
  /** Bypass all permission checks (sacrifice-my-pc mode) */
25
25
  bypassPermissions?: boolean;
26
26
  }
27
- /** Get git diff for review context */
28
- export declare function getGitDiff(cwd: string): string;
29
27
  /** Run a custom agent */
30
28
  export declare function runCustomAgent(agentConfig: CustomAgentConfig, task: string, options: RunAgentOptions): Promise<AgentResponse>;
31
29
  /** Run an agent by name or path */
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAKhH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK3F,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,uDAAuD;IACvD,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,8DAA8D;IAC9D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA6BD,sCAAsC;AACtC,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAoB9C;AAED,yBAAyB;AACzB,wBAAsB,cAAc,CAClC,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CA4DxB;AAqCD,mCAAmC;AACnC,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAoDxB"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"AAAA;;GAEG;AASH,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAKhH,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAK3F,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,wCAAwC;AACxC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IACvC,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8DAA8D;IAC9D,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,mBAAmB,CAAC,EAAE,iBAAiB,CAAC;IACxC,iBAAiB,CAAC,EAAE,sBAAsB,CAAC;IAC3C,0DAA0D;IAC1D,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA8BD,yBAAyB;AACzB,wBAAsB,cAAc,CAClC,WAAW,EAAE,iBAAiB,EAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAyDxB;AAqCD,mCAAmC;AACnC,wBAAsB,QAAQ,CAC5B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,aAAa,CAAC,CAgDxB"}
@@ -1,7 +1,6 @@
1
1
  /**
2
2
  * Agent execution runners
3
3
  */
4
- import { execSync } from 'node:child_process';
5
4
  import { existsSync, readFileSync } from 'node:fs';
6
5
  import { basename, dirname } from 'node:path';
7
6
  import { callClaudeAgent, callClaudeSkill, } from '../claude/client.js';
@@ -45,29 +44,6 @@ function resolveModel(cwd, options, agentConfig) {
45
44
  }
46
45
  return undefined;
47
46
  }
48
- /** Get git diff for review context */
49
- export function getGitDiff(cwd) {
50
- try {
51
- // First check if HEAD exists (new repos may not have any commits)
52
- try {
53
- execSync('git rev-parse HEAD', { cwd, encoding: 'utf-8', stdio: 'pipe' });
54
- }
55
- catch {
56
- // No commits yet, return empty diff
57
- return '';
58
- }
59
- const diff = execSync('git diff HEAD', {
60
- cwd,
61
- encoding: 'utf-8',
62
- maxBuffer: 1024 * 1024 * 10, // 10MB
63
- stdio: 'pipe',
64
- });
65
- return diff.trim();
66
- }
67
- catch {
68
- return '';
69
- }
70
- }
71
47
  /** Run a custom agent */
72
48
  export async function runCustomAgent(agentConfig, task, options) {
73
49
  const allowedTools = options.allowedTools ?? agentConfig.allowedTools;
@@ -77,6 +53,7 @@ export async function runCustomAgent(agentConfig, task, options) {
77
53
  cwd: options.cwd,
78
54
  sessionId: options.sessionId,
79
55
  allowedTools,
56
+ maxTurns: options.maxTurns,
80
57
  model: resolveModel(options.cwd, options, agentConfig),
81
58
  permissionMode: options.permissionMode,
82
59
  onStream: options.onStream,
@@ -92,6 +69,7 @@ export async function runCustomAgent(agentConfig, task, options) {
92
69
  cwd: options.cwd,
93
70
  sessionId: options.sessionId,
94
71
  allowedTools,
72
+ maxTurns: options.maxTurns,
95
73
  model: resolveModel(options.cwd, options, agentConfig),
96
74
  permissionMode: options.permissionMode,
97
75
  onStream: options.onStream,
@@ -102,19 +80,15 @@ export async function runCustomAgent(agentConfig, task, options) {
102
80
  return callClaudeSkill(agentConfig.claudeSkill, task, callOptions);
103
81
  }
104
82
  // Custom agent with prompt
105
- let systemPrompt = loadAgentPrompt(agentConfig);
106
- // Inject status rules if provided
107
- if (options.statusRulesPrompt) {
108
- systemPrompt = `${systemPrompt}\n\n${options.statusRulesPrompt}`;
109
- }
83
+ const systemPrompt = loadAgentPrompt(agentConfig);
110
84
  const providerType = resolveProvider(options.cwd, options, agentConfig);
111
85
  const provider = getProvider(providerType);
112
86
  const callOptions = {
113
87
  cwd: options.cwd,
114
88
  sessionId: options.sessionId,
115
89
  allowedTools,
90
+ maxTurns: options.maxTurns,
116
91
  model: resolveModel(options.cwd, options, agentConfig),
117
- statusPatterns: agentConfig.statusPatterns,
118
92
  permissionMode: options.permissionMode,
119
93
  onStream: options.onStream,
120
94
  onPermissionRequest: options.onPermissionRequest,
@@ -170,17 +144,14 @@ export async function runAgent(agentSpec, task, options) {
170
144
  if (!existsSync(options.agentPath)) {
171
145
  throw new Error(`Agent file not found: ${options.agentPath}`);
172
146
  }
173
- let systemPrompt = loadAgentPromptFromPath(options.agentPath);
174
- // Inject status rules if provided
175
- if (options.statusRulesPrompt) {
176
- systemPrompt = `${systemPrompt}\n\n${options.statusRulesPrompt}`;
177
- }
147
+ const systemPrompt = loadAgentPromptFromPath(options.agentPath);
178
148
  const providerType = resolveProvider(options.cwd, options);
179
149
  const provider = getProvider(providerType);
180
150
  const callOptions = {
181
151
  cwd: options.cwd,
182
152
  sessionId: options.sessionId,
183
153
  allowedTools: options.allowedTools,
154
+ maxTurns: options.maxTurns,
184
155
  model: resolveModel(options.cwd, options),
185
156
  systemPrompt,
186
157
  permissionMode: options.permissionMode,
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"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"}