takt 0.2.2 → 0.2.3

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 (93) hide show
  1. package/README.md +67 -38
  2. package/dist/cli.d.ts +4 -3
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +22 -17
  5. package/dist/cli.js.map +1 -1
  6. package/dist/commands/addTask.d.ts.map +1 -1
  7. package/dist/commands/addTask.js +6 -5
  8. package/dist/commands/addTask.js.map +1 -1
  9. package/dist/commands/help.js +3 -3
  10. package/dist/commands/index.d.ts +1 -1
  11. package/dist/commands/index.d.ts.map +1 -1
  12. package/dist/commands/index.js +1 -1
  13. package/dist/commands/index.js.map +1 -1
  14. package/dist/commands/listTasks.d.ts +45 -0
  15. package/dist/commands/listTasks.d.ts.map +1 -0
  16. package/dist/commands/{reviewTasks.js → listTasks.js} +93 -73
  17. package/dist/commands/listTasks.js.map +1 -0
  18. package/dist/commands/taskExecution.d.ts +7 -5
  19. package/dist/commands/taskExecution.d.ts.map +1 -1
  20. package/dist/commands/taskExecution.js +21 -14
  21. package/dist/commands/taskExecution.js.map +1 -1
  22. package/dist/commands/workflowExecution.js +3 -3
  23. package/dist/commands/workflowExecution.js.map +1 -1
  24. package/dist/config/globalConfig.d.ts.map +1 -1
  25. package/dist/config/globalConfig.js +4 -0
  26. package/dist/config/globalConfig.js.map +1 -1
  27. package/dist/models/schemas.d.ts +1 -0
  28. package/dist/models/schemas.d.ts.map +1 -1
  29. package/dist/models/schemas.js +2 -0
  30. package/dist/models/schemas.js.map +1 -1
  31. package/dist/models/types.d.ts +2 -0
  32. package/dist/models/types.d.ts.map +1 -1
  33. package/dist/resources/index.d.ts.map +1 -1
  34. package/dist/resources/index.js +6 -3
  35. package/dist/resources/index.js.map +1 -1
  36. package/dist/task/autoCommit.d.ts +9 -6
  37. package/dist/task/autoCommit.d.ts.map +1 -1
  38. package/dist/task/autoCommit.js +21 -12
  39. package/dist/task/autoCommit.js.map +1 -1
  40. package/dist/task/branchList.d.ts +55 -0
  41. package/dist/task/branchList.d.ts.map +1 -0
  42. package/dist/task/branchList.js +131 -0
  43. package/dist/task/branchList.js.map +1 -0
  44. package/dist/task/clone.d.ts +53 -0
  45. package/dist/task/clone.d.ts.map +1 -0
  46. package/dist/task/clone.js +181 -0
  47. package/dist/task/clone.js.map +1 -0
  48. package/dist/task/index.d.ts +3 -2
  49. package/dist/task/index.d.ts.map +1 -1
  50. package/dist/task/index.js +3 -2
  51. package/dist/task/index.js.map +1 -1
  52. package/dist/task/schema.d.ts +4 -4
  53. package/dist/task/schema.js +4 -4
  54. package/dist/task/summarize.d.ts +7 -5
  55. package/dist/task/summarize.d.ts.map +1 -1
  56. package/dist/task/summarize.js +62 -29
  57. package/dist/task/summarize.js.map +1 -1
  58. package/dist/utils/updateNotifier.d.ts +6 -0
  59. package/dist/utils/updateNotifier.d.ts.map +1 -0
  60. package/dist/utils/updateNotifier.js +17 -0
  61. package/dist/utils/updateNotifier.js.map +1 -0
  62. package/dist/workflow/engine.d.ts +1 -1
  63. package/dist/workflow/engine.d.ts.map +1 -1
  64. package/dist/workflow/engine.js +10 -2
  65. package/dist/workflow/engine.js.map +1 -1
  66. package/dist/workflow/instruction-builder.d.ts +2 -2
  67. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  68. package/dist/workflow/instruction-builder.js +4 -8
  69. package/dist/workflow/instruction-builder.js.map +1 -1
  70. package/package.json +4 -1
  71. package/resources/global/en/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
  72. package/resources/global/en/agents/default/coder.md +3 -3
  73. package/resources/global/en/agents/default/planner.md +14 -1
  74. package/resources/global/en/workflows/default.yaml +6 -1
  75. package/resources/global/en/workflows/expert-cqrs.yaml +8 -1
  76. package/resources/global/en/workflows/expert.yaml +8 -1
  77. package/resources/global/en/workflows/simple.yaml +5 -1
  78. package/resources/global/ja/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
  79. package/resources/global/ja/agents/default/coder.md +3 -3
  80. package/resources/global/ja/agents/default/planner.md +14 -1
  81. package/resources/global/ja/workflows/default.yaml +6 -1
  82. package/resources/global/ja/workflows/expert-cqrs.yaml +9 -1
  83. package/resources/global/ja/workflows/expert.yaml +8 -1
  84. package/resources/global/ja/workflows/simple.yaml +5 -1
  85. package/resources/project/dotgitignore +10 -0
  86. package/resources/project/tasks/TASK-FORMAT +37 -0
  87. package/dist/commands/reviewTasks.d.ts +0 -43
  88. package/dist/commands/reviewTasks.d.ts.map +0 -1
  89. package/dist/commands/reviewTasks.js.map +0 -1
  90. package/dist/task/worktree.d.ts +0 -70
  91. package/dist/task/worktree.d.ts.map +0 -1
  92. package/dist/task/worktree.js +0 -221
  93. package/dist/task/worktree.js.map +0 -1
@@ -0,0 +1,181 @@
1
+ /**
2
+ * Git clone lifecycle management
3
+ *
4
+ * Creates, removes, and tracks git clones for task isolation.
5
+ * Uses `git clone --reference --dissociate` so each clone has a fully
6
+ * independent .git directory, then removes the origin remote to prevent
7
+ * Claude Code SDK from traversing back to the main repository.
8
+ */
9
+ import * as fs from 'node:fs';
10
+ import * as path from 'node:path';
11
+ import { execFileSync } from 'node:child_process';
12
+ import { createLogger } from '../utils/debug.js';
13
+ import { slugify } from '../utils/slug.js';
14
+ import { loadGlobalConfig } from '../config/globalConfig.js';
15
+ const log = createLogger('clone');
16
+ function generateTimestamp() {
17
+ return new Date().toISOString().replace(/[-:.]/g, '').slice(0, 13);
18
+ }
19
+ /**
20
+ * Resolve the base directory for clones from global config.
21
+ * Returns the configured worktree_dir (resolved to absolute), or ../
22
+ */
23
+ function resolveCloneBaseDir(projectDir) {
24
+ const globalConfig = loadGlobalConfig();
25
+ if (globalConfig.worktreeDir) {
26
+ return path.isAbsolute(globalConfig.worktreeDir)
27
+ ? globalConfig.worktreeDir
28
+ : path.resolve(projectDir, globalConfig.worktreeDir);
29
+ }
30
+ return path.join(projectDir, '..');
31
+ }
32
+ /**
33
+ * Resolve the clone path based on options and global config.
34
+ *
35
+ * Priority:
36
+ * 1. Custom path in options.worktree (string)
37
+ * 2. worktree_dir from config.yaml (if set)
38
+ * 3. Default: ../{dir-name}
39
+ */
40
+ function resolveClonePath(projectDir, options) {
41
+ const timestamp = generateTimestamp();
42
+ const slug = slugify(options.taskSlug);
43
+ const dirName = slug ? `${timestamp}-${slug}` : timestamp;
44
+ if (typeof options.worktree === 'string') {
45
+ return path.isAbsolute(options.worktree)
46
+ ? options.worktree
47
+ : path.resolve(projectDir, options.worktree);
48
+ }
49
+ return path.join(resolveCloneBaseDir(projectDir), dirName);
50
+ }
51
+ function resolveBranchName(options) {
52
+ if (options.branch) {
53
+ return options.branch;
54
+ }
55
+ const timestamp = generateTimestamp();
56
+ const slug = slugify(options.taskSlug);
57
+ return slug ? `takt/${timestamp}-${slug}` : `takt/${timestamp}`;
58
+ }
59
+ function branchExists(projectDir, branch) {
60
+ try {
61
+ execFileSync('git', ['rev-parse', '--verify', branch], {
62
+ cwd: projectDir,
63
+ stdio: 'pipe',
64
+ });
65
+ return true;
66
+ }
67
+ catch {
68
+ return false;
69
+ }
70
+ }
71
+ /**
72
+ * Clone a repository and remove origin to isolate from the main repo.
73
+ */
74
+ function cloneAndIsolate(projectDir, clonePath) {
75
+ fs.mkdirSync(path.dirname(clonePath), { recursive: true });
76
+ execFileSync('git', ['clone', '--reference', projectDir, '--dissociate', projectDir, clonePath], {
77
+ cwd: projectDir,
78
+ stdio: 'pipe',
79
+ });
80
+ execFileSync('git', ['remote', 'remove', 'origin'], {
81
+ cwd: clonePath,
82
+ stdio: 'pipe',
83
+ });
84
+ }
85
+ /**
86
+ * Create a git clone for a task.
87
+ *
88
+ * Uses `git clone --reference --dissociate` to create an independent clone,
89
+ * then removes origin and checks out a new branch.
90
+ */
91
+ export function createSharedClone(projectDir, options) {
92
+ const clonePath = resolveClonePath(projectDir, options);
93
+ const branch = resolveBranchName(options);
94
+ log.info('Creating shared clone', { path: clonePath, branch });
95
+ cloneAndIsolate(projectDir, clonePath);
96
+ if (branchExists(clonePath, branch)) {
97
+ execFileSync('git', ['checkout', branch], { cwd: clonePath, stdio: 'pipe' });
98
+ }
99
+ else {
100
+ execFileSync('git', ['checkout', '-b', branch], { cwd: clonePath, stdio: 'pipe' });
101
+ }
102
+ saveCloneMeta(projectDir, branch, clonePath);
103
+ log.info('Clone created', { path: clonePath, branch });
104
+ return { path: clonePath, branch };
105
+ }
106
+ /**
107
+ * Create a temporary clone for an existing branch.
108
+ * Used by review/instruct to work on a branch that was previously pushed.
109
+ */
110
+ export function createTempCloneForBranch(projectDir, branch) {
111
+ const timestamp = generateTimestamp();
112
+ const clonePath = path.join(resolveCloneBaseDir(projectDir), `tmp-${timestamp}`);
113
+ log.info('Creating temp clone for branch', { path: clonePath, branch });
114
+ cloneAndIsolate(projectDir, clonePath);
115
+ execFileSync('git', ['checkout', branch], { cwd: clonePath, stdio: 'pipe' });
116
+ saveCloneMeta(projectDir, branch, clonePath);
117
+ log.info('Temp clone created', { path: clonePath, branch });
118
+ return { path: clonePath, branch };
119
+ }
120
+ /**
121
+ * Remove a clone directory.
122
+ */
123
+ export function removeClone(clonePath) {
124
+ log.info('Removing clone', { path: clonePath });
125
+ try {
126
+ fs.rmSync(clonePath, { recursive: true, force: true });
127
+ log.info('Clone removed', { path: clonePath });
128
+ }
129
+ catch (err) {
130
+ log.error('Failed to remove clone', { path: clonePath, error: String(err) });
131
+ }
132
+ }
133
+ // --- Clone metadata ---
134
+ const CLONE_META_DIR = 'clone-meta';
135
+ function encodeBranchName(branch) {
136
+ return branch.replace(/\//g, '--');
137
+ }
138
+ function getCloneMetaPath(projectDir, branch) {
139
+ return path.join(projectDir, '.takt', CLONE_META_DIR, `${encodeBranchName(branch)}.json`);
140
+ }
141
+ /**
142
+ * Save clone metadata (branch → clonePath mapping).
143
+ * Used to clean up orphaned clone directories on merge/delete.
144
+ */
145
+ export function saveCloneMeta(projectDir, branch, clonePath) {
146
+ const filePath = getCloneMetaPath(projectDir, branch);
147
+ fs.mkdirSync(path.dirname(filePath), { recursive: true });
148
+ fs.writeFileSync(filePath, JSON.stringify({ branch, clonePath }));
149
+ log.info('Clone meta saved', { branch, clonePath });
150
+ }
151
+ /**
152
+ * Remove clone metadata for a branch.
153
+ */
154
+ export function removeCloneMeta(projectDir, branch) {
155
+ try {
156
+ fs.unlinkSync(getCloneMetaPath(projectDir, branch));
157
+ log.info('Clone meta removed', { branch });
158
+ }
159
+ catch {
160
+ // File may not exist — ignore
161
+ }
162
+ }
163
+ /**
164
+ * Clean up an orphaned clone directory associated with a branch.
165
+ * Reads metadata, removes clone directory if it still exists, then removes metadata.
166
+ */
167
+ export function cleanupOrphanedClone(projectDir, branch) {
168
+ try {
169
+ const raw = fs.readFileSync(getCloneMetaPath(projectDir, branch), 'utf-8');
170
+ const meta = JSON.parse(raw);
171
+ if (fs.existsSync(meta.clonePath)) {
172
+ removeClone(meta.clonePath);
173
+ log.info('Orphaned clone cleaned up', { branch, clonePath: meta.clonePath });
174
+ }
175
+ }
176
+ catch {
177
+ // No metadata or parse error — nothing to clean up
178
+ }
179
+ removeCloneMeta(projectDir, branch);
180
+ }
181
+ //# sourceMappingURL=clone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clone.js","sourceRoot":"","sources":["../../src/task/clone.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,8 @@ export { TaskRunner, type TaskInfo, type TaskResult, } from './runner.js';
5
5
  export { showTaskList } from './display.js';
6
6
  export { TaskFileSchema, type TaskFileData } from './schema.js';
7
7
  export { parseTaskFile, parseTaskFiles, type ParsedTask } from './parser.js';
8
- export { createWorktree, removeWorktree, detectDefaultBranch, parseTaktWorktrees, listTaktWorktrees, getFilesChanged, extractTaskSlug, buildReviewItems, type WorktreeOptions, type WorktreeResult, type WorktreeInfo, type WorktreeReviewItem, } from './worktree.js';
9
- export { autoCommitWorktree, type AutoCommitResult } from './autoCommit.js';
8
+ export { createSharedClone, removeClone, createTempCloneForBranch, saveCloneMeta, removeCloneMeta, cleanupOrphanedClone, type WorktreeOptions, type WorktreeResult, } from './clone.js';
9
+ export { detectDefaultBranch, listTaktBranches, parseTaktBranches, getFilesChanged, extractTaskSlug, getOriginalInstruction, buildListItems, type BranchInfo, type BranchListItem, } from './branchList.js';
10
+ export { autoCommitAndPush, type AutoCommitResult } from './autoCommit.js';
10
11
  export { TaskWatcher, type TaskWatcherOptions } from './watcher.js';
11
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,KAAK,eAAe,EACpB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,kBAAkB,GACxB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,QAAQ,EACb,KAAK,UAAU,GAChB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,KAAK,UAAU,EAAE,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,oBAAoB,EACpB,KAAK,eAAe,EACpB,KAAK,cAAc,GACpB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,cAAc,EACd,KAAK,UAAU,EACf,KAAK,cAAc,GACpB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,KAAK,kBAAkB,EAAE,MAAM,cAAc,CAAC"}
@@ -5,7 +5,8 @@ export { TaskRunner, } from './runner.js';
5
5
  export { showTaskList } from './display.js';
6
6
  export { TaskFileSchema } from './schema.js';
7
7
  export { parseTaskFile, parseTaskFiles } from './parser.js';
8
- export { createWorktree, removeWorktree, detectDefaultBranch, parseTaktWorktrees, listTaktWorktrees, getFilesChanged, extractTaskSlug, buildReviewItems, } from './worktree.js';
9
- export { autoCommitWorktree } from './autoCommit.js';
8
+ export { createSharedClone, removeClone, createTempCloneForBranch, saveCloneMeta, removeCloneMeta, cleanupOrphanedClone, } from './clone.js';
9
+ export { detectDefaultBranch, listTaktBranches, parseTaktBranches, getFilesChanged, extractTaskSlug, getOriginalInstruction, buildListItems, } from './branchList.js';
10
+ export { autoCommitAndPush } from './autoCommit.js';
10
11
  export { TaskWatcher } from './watcher.js';
11
12
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAGX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,gBAAgB,GAKjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,kBAAkB,EAAyB,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/task/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,UAAU,GAGX,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAqB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAmB,MAAM,aAAa,CAAC;AAC7E,OAAO,EACL,iBAAiB,EACjB,WAAW,EACX,wBAAwB,EACxB,aAAa,EACb,eAAe,EACf,oBAAoB,GAGrB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,cAAc,GAGf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,iBAAiB,EAAyB,MAAM,iBAAiB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAA2B,MAAM,cAAc,CAAC"}
@@ -9,14 +9,14 @@ import { z } from 'zod/v4';
9
9
  *
10
10
  * Examples:
11
11
  * task: "認証機能を追加する"
12
- * worktree: true # .takt/worktrees/{timestamp}-{task-slug}/ に作成
12
+ * worktree: true # 共有クローンで隔離実行
13
13
  * branch: "feat/add-auth" # オプション(省略時は自動生成)
14
14
  * workflow: "default" # オプション(省略時はcurrent workflow)
15
15
  *
16
- * worktree patterns:
17
- * - true: create at .takt/worktrees/{timestamp}-{task-slug}/
16
+ * worktree patterns (uses git clone --shared internally):
17
+ * - true: create shared clone in sibling dir or worktree_dir
18
18
  * - "/path/to/dir": create at specified path
19
- * - omitted: no worktree (run in cwd)
19
+ * - omitted: no isolation (run in cwd)
20
20
  *
21
21
  * branch patterns:
22
22
  * - "feat/xxx": use specified branch name
@@ -9,14 +9,14 @@ import { z } from 'zod/v4';
9
9
  *
10
10
  * Examples:
11
11
  * task: "認証機能を追加する"
12
- * worktree: true # .takt/worktrees/{timestamp}-{task-slug}/ に作成
12
+ * worktree: true # 共有クローンで隔離実行
13
13
  * branch: "feat/add-auth" # オプション(省略時は自動生成)
14
14
  * workflow: "default" # オプション(省略時はcurrent workflow)
15
15
  *
16
- * worktree patterns:
17
- * - true: create at .takt/worktrees/{timestamp}-{task-slug}/
16
+ * worktree patterns (uses git clone --shared internally):
17
+ * - true: create shared clone in sibling dir or worktree_dir
18
18
  * - "/path/to/dir": create at specified path
19
- * - omitted: no worktree (run in cwd)
19
+ * - omitted: no isolation (run in cwd)
20
20
  *
21
21
  * branch patterns:
22
22
  * - "feat/xxx": use specified branch name
@@ -1,20 +1,22 @@
1
1
  /**
2
- * Task name summarization using AI
2
+ * Task name summarization using AI or romanization
3
3
  *
4
- * Generates concise English summaries for use in branch names and worktree paths.
4
+ * Generates concise English/romaji summaries for use in branch names and clone paths.
5
5
  */
6
6
  export interface SummarizeOptions {
7
7
  /** Working directory for Claude execution */
8
8
  cwd: string;
9
- /** Model to use (optional, defaults to haiku for speed) */
9
+ /** Model to use (optional, defaults to config or haiku) */
10
10
  model?: string;
11
+ /** Use LLM for summarization (default: true). If false, uses romanization. */
12
+ useLLM?: boolean;
11
13
  }
12
14
  /**
13
- * Summarize a task name into a concise English slug using AI.
15
+ * Summarize a task name into a concise slug using AI or romanization.
14
16
  *
15
17
  * @param taskName - Original task name (can be in any language)
16
18
  * @param options - Summarization options
17
- * @returns English slug suitable for branch names
19
+ * @returns Slug suitable for branch names (English if LLM, romaji if not)
18
20
  */
19
21
  export declare function summarizeTaskName(taskName: string, options: SummarizeOptions): Promise<string>;
20
22
  //# sourceMappingURL=summarize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAuBH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAsBjB"}
1
+ {"version":3,"file":"summarize.d.ts","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0CH,MAAM,WAAW,gBAAgB;IAC/B,6CAA6C;IAC7C,GAAG,EAAE,MAAM,CAAC;IACZ,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,8EAA8E;IAC9E,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAaD;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CA4BjB"}
@@ -1,49 +1,82 @@
1
1
  /**
2
- * Task name summarization using AI
2
+ * Task name summarization using AI or romanization
3
3
  *
4
- * Generates concise English summaries for use in branch names and worktree paths.
4
+ * Generates concise English/romaji summaries for use in branch names and clone paths.
5
5
  */
6
- import { callClaude } from '../claude/client.js';
6
+ import * as wanakana from 'wanakana';
7
+ import { loadGlobalConfig } from '../config/globalConfig.js';
8
+ import { getProvider } from '../providers/index.js';
7
9
  import { createLogger } from '../utils/debug.js';
8
10
  const log = createLogger('summarize');
9
- const SUMMARIZE_SYSTEM_PROMPT = `You are a helpful assistant that generates concise English slugs for git branch names.
11
+ /**
12
+ * Sanitize a string for use as git branch name and directory name.
13
+ *
14
+ * Git branch restrictions: no spaces, ~, ^, :, ?, *, [, \, .., @{, leading -
15
+ * Directory restrictions: no /, \, :, *, ?, ", <, >, |
16
+ *
17
+ * This function allows only: a-z, 0-9, hyphen
18
+ */
19
+ function sanitizeSlug(input, maxLength = 30) {
20
+ return input
21
+ .trim()
22
+ .toLowerCase()
23
+ .replace(/[^a-z0-9-]/g, '-') // Replace invalid chars with hyphen
24
+ .replace(/-+/g, '-') // Collapse multiple hyphens
25
+ .replace(/^-+/, '') // Remove leading hyphens
26
+ .slice(0, maxLength)
27
+ .replace(/-+$/, ''); // Remove trailing hyphens (after slice)
28
+ }
29
+ const SUMMARIZE_SYSTEM_PROMPT = `You are a slug generator. Given a task description, output ONLY a slug.
10
30
 
11
- Rules:
12
- - Output ONLY the slug, nothing else
13
- - Use lowercase letters, numbers, and hyphens only
14
- - Maximum 30 characters
15
- - No leading/trailing hyphens
16
- - Be descriptive but concise
17
- - If the input is already in English and short, simplify it
31
+ NEVER output sentences. NEVER start with "this", "the", "i", "we", or "it".
32
+ ALWAYS start with a verb: add, fix, update, refactor, implement, remove, etc.
18
33
 
19
- Examples:
20
- - "認証機能を追加する" → "add-auth"
21
- - "Fix the login bug" "fix-login-bug"
22
- - "worktreeを作るときブランチ名をAIで生成" "ai-branch-naming"
23
- - "Add user registration with email verification" "add-user-registration"`;
34
+ Format: verb-noun (lowercase, hyphens, max 30 chars)
35
+
36
+ InputOutput:
37
+ 認証機能を追加するadd-auth
38
+ Fix the login bugfix-login-bug
39
+ ユーザー登録にメール認証を追加 → add-email-verification
40
+ worktreeを作るときブランチ名をAIで生成 → ai-branch-naming
41
+ レビュー画面に元の指示を表示する → show-original-instruction`;
42
+ /**
43
+ * Convert Japanese text to romaji slug.
44
+ * Handles hiragana, katakana, and passes through alphanumeric.
45
+ * Kanji and other non-convertible characters become hyphens.
46
+ */
47
+ function toRomajiSlug(text) {
48
+ // Convert to romaji (hiragana/katakana → romaji, kanji stays as-is)
49
+ const romaji = wanakana.toRomaji(text, { customRomajiMapping: {} });
50
+ return sanitizeSlug(romaji);
51
+ }
24
52
  /**
25
- * Summarize a task name into a concise English slug using AI.
53
+ * Summarize a task name into a concise slug using AI or romanization.
26
54
  *
27
55
  * @param taskName - Original task name (can be in any language)
28
56
  * @param options - Summarization options
29
- * @returns English slug suitable for branch names
57
+ * @returns Slug suitable for branch names (English if LLM, romaji if not)
30
58
  */
31
59
  export async function summarizeTaskName(taskName, options) {
32
- log.info('Summarizing task name', { taskName });
33
- const response = await callClaude('summarizer', `Summarize this task: "${taskName}"`, {
60
+ const useLLM = options.useLLM ?? true;
61
+ log.info('Summarizing task name', { taskName, useLLM });
62
+ // Use romanization if LLM is disabled
63
+ if (!useLLM) {
64
+ const slug = toRomajiSlug(taskName);
65
+ log.info('Task name romanized', { original: taskName, slug });
66
+ return slug || 'task';
67
+ }
68
+ // Use LLM for summarization
69
+ const globalConfig = loadGlobalConfig();
70
+ const providerType = globalConfig.provider ?? 'claude';
71
+ const model = options.model ?? globalConfig.model ?? 'haiku';
72
+ const provider = getProvider(providerType);
73
+ const response = await provider.call('summarizer', taskName, {
34
74
  cwd: options.cwd,
35
- model: options.model ?? 'haiku',
36
- maxTurns: 1,
75
+ model,
37
76
  systemPrompt: SUMMARIZE_SYSTEM_PROMPT,
38
77
  allowedTools: [],
39
78
  });
40
- const slug = response.content
41
- .trim()
42
- .toLowerCase()
43
- .replace(/[^a-z0-9-]/g, '-')
44
- .replace(/-+/g, '-')
45
- .replace(/^-|-$/g, '')
46
- .slice(0, 30);
79
+ const slug = sanitizeSlug(response.content);
47
80
  log.info('Task name summarized', { original: taskName, slug });
48
81
  return slug || 'task';
49
82
  }
@@ -1 +1 @@
1
- {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;;4EAc4C,CAAC;AAS7E;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,OAAyB;IAEzB,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEhD,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,YAAY,EAAE,yBAAyB,QAAQ,GAAG,EAAE;QACpF,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,OAAO;QAC/B,QAAQ,EAAE,CAAC;QACX,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO;SAC1B,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC;SACnB,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;SACrB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC"}
1
+ {"version":3,"file":"summarize.js","sourceRoot":"","sources":["../../src/task/summarize.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAqB,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,GAAG,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;AAEtC;;;;;;;GAOG;AACH,SAAS,YAAY,CAAC,KAAa,EAAE,SAAS,GAAG,EAAE;IACjD,OAAO,KAAK;SACT,IAAI,EAAE;SACN,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC,CAAE,oCAAoC;SACjE,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAU,4BAA4B;SACzD,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAW,yBAAyB;SACtD,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC;SACnB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAU,wCAAwC;AAC1E,CAAC;AAED,MAAM,uBAAuB,GAAG;;;;;;;;;;;;6CAYa,CAAC;AAW9C;;;;GAIG;AACH,SAAS,YAAY,CAAC,IAAY;IAChC,oEAAoE;IACpE,MAAM,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,mBAAmB,EAAE,EAAE,EAAE,CAAC,CAAC;IACpE,OAAO,YAAY,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,OAAyB;IAEzB,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC;IACtC,GAAG,CAAC,IAAI,CAAC,uBAAuB,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;IAExD,sCAAsC;IACtC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACpC,GAAG,CAAC,IAAI,CAAC,qBAAqB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAC9D,OAAO,IAAI,IAAI,MAAM,CAAC;IACxB,CAAC;IAED,4BAA4B;IAC5B,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;IACxC,MAAM,YAAY,GAAI,YAAY,CAAC,QAAyB,IAAI,QAAQ,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,IAAI,OAAO,CAAC;IAE7D,MAAM,QAAQ,GAAG,WAAW,CAAC,YAAY,CAAC,CAAC;IAC3C,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE;QAC3D,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,KAAK;QACL,YAAY,EAAE,uBAAuB;QACrC,YAAY,EAAE,EAAE;KACjB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5C,GAAG,CAAC,IAAI,CAAC,sBAAsB,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/D,OAAO,IAAI,IAAI,MAAM,CAAC;AACxB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Check for available updates and schedule a notification on process exit.
3
+ * This is non-blocking: the registry check runs in a background subprocess.
4
+ */
5
+ export declare function checkForUpdates(): void;
6
+ //# sourceMappingURL=updateNotifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateNotifier.d.ts","sourceRoot":"","sources":["../../src/utils/updateNotifier.ts"],"names":[],"mappings":"AAeA;;;GAGG;AACH,wBAAgB,eAAe,IAAI,IAAI,CAItC"}
@@ -0,0 +1,17 @@
1
+ import { createRequire } from 'node:module';
2
+ // @ts-expect-error -- update-notifier v7.x has no type definitions
3
+ import updateNotifier from 'update-notifier';
4
+ const require = createRequire(import.meta.url);
5
+ function loadPackageJson() {
6
+ return require('../../package.json');
7
+ }
8
+ /**
9
+ * Check for available updates and schedule a notification on process exit.
10
+ * This is non-blocking: the registry check runs in a background subprocess.
11
+ */
12
+ export function checkForUpdates() {
13
+ const pkg = loadPackageJson();
14
+ const notifier = updateNotifier({ pkg });
15
+ notifier.notify();
16
+ }
17
+ //# sourceMappingURL=updateNotifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateNotifier.js","sourceRoot":"","sources":["../../src/utils/updateNotifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,mEAAmE;AACnE,OAAO,cAAc,MAAM,iBAAiB,CAAC;AAE7C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAO/C,SAAS,eAAe;IACtB,OAAO,OAAO,CAAC,oBAAoB,CAAY,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe;IAC7B,MAAM,GAAG,GAAG,eAAe,EAAE,CAAC;IAC9B,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,CAAC;AACpB,CAAC"}
@@ -18,7 +18,7 @@ export declare class WorkflowEngine extends EventEmitter {
18
18
  private language;
19
19
  private reportDir;
20
20
  constructor(config: WorkflowConfig, cwd: string, task: string, options?: WorkflowEngineOptions);
21
- /** Ensure report directory exists (always in project root, not worktree) */
21
+ /** Ensure report directory exists (always in project root, not clone) */
22
22
  private ensureReportDirExists;
23
23
  /** Validate workflow configuration at construction time */
24
24
  private validateConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAiBxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAqBlG,4EAA4E;IAC5E,OAAO,CAAC,qBAAqB;IAO7B,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAqBtB,iCAAiC;IACjC,QAAQ,IAAI,aAAa;IAIzB,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,+BAA+B;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,oCAAoC;IACpC,MAAM,IAAI,MAAM;IAIhB,sDAAsD;IACtD,aAAa,IAAI,MAAM;IAIvB,sCAAsC;IACtC,OAAO,CAAC,gBAAgB;IAexB,uBAAuB;IACvB,OAAO,CAAC,OAAO;IAQf,wBAAwB;YACV,OAAO;IA2CrB,qCAAqC;IAC/B,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IA4FnC,oDAAoD;IAC9C,kBAAkB,IAAI,OAAO,CAAC;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CAgCH"}
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EAEb,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAiBxD,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE3D,wDAAwD;AACxD,qBAAa,cAAe,SAAQ,YAAY;IAC9C,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,qBAA0B;IAqBlG,yEAAyE;IACzE,OAAO,CAAC,qBAAqB;IAmB7B,2DAA2D;IAC3D,OAAO,CAAC,cAAc;IAqBtB,iCAAiC;IACjC,QAAQ,IAAI,aAAa;IAIzB,qBAAqB;IACrB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAIjC,+BAA+B;IAC/B,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAI/B,oCAAoC;IACpC,MAAM,IAAI,MAAM;IAIhB,sDAAsD;IACtD,aAAa,IAAI,MAAM;IAIvB,sCAAsC;IACtC,OAAO,CAAC,gBAAgB;IAexB,uBAAuB;IACvB,OAAO,CAAC,OAAO;IAQf,wBAAwB;YACV,OAAO;IA2CrB,qCAAqC;IAC/B,GAAG,IAAI,OAAO,CAAC,aAAa,CAAC;IA4FnC,oDAAoD;IAC9C,kBAAkB,IAAI,OAAO,CAAC;QAClC,QAAQ,EAAE,aAAa,CAAC;QACxB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,YAAY,CAAC,EAAE,OAAO,CAAC;KACxB,CAAC;CAgCH"}
@@ -2,7 +2,7 @@
2
2
  * Workflow execution engine
3
3
  */
4
4
  import { EventEmitter } from 'node:events';
5
- import { mkdirSync, existsSync } from 'node:fs';
5
+ import { mkdirSync, existsSync, symlinkSync } from 'node:fs';
6
6
  import { join } from 'node:path';
7
7
  import { runAgent } from '../agents/runner.js';
8
8
  import { COMPLETE_STEP, ABORT_STEP, ERROR_MESSAGES } from './constants.js';
@@ -46,12 +46,20 @@ export class WorkflowEngine extends EventEmitter {
46
46
  maxIterations: config.maxIterations,
47
47
  });
48
48
  }
49
- /** Ensure report directory exists (always in project root, not worktree) */
49
+ /** Ensure report directory exists (always in project root, not clone) */
50
50
  ensureReportDirExists() {
51
51
  const reportDirPath = join(this.projectCwd, '.takt', 'reports', this.reportDir);
52
52
  if (!existsSync(reportDirPath)) {
53
53
  mkdirSync(reportDirPath, { recursive: true });
54
54
  }
55
+ // Worktree mode: create symlink so agents can access reports via relative path
56
+ if (this.cwd !== this.projectCwd) {
57
+ const cwdReportsDir = join(this.cwd, '.takt', 'reports');
58
+ if (!existsSync(cwdReportsDir)) {
59
+ mkdirSync(join(this.cwd, '.takt'), { recursive: true });
60
+ symlinkSync(join(this.projectCwd, '.takt', 'reports'), cwdReportsDir);
61
+ }
62
+ }
55
63
  }
56
64
  /** Validate workflow configuration at construction time */
57
65
  validateConfig() {
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/workflow/engine.ts"],"names":[],"mappings":"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"}
@@ -17,7 +17,7 @@ export interface InstructionContext {
17
17
  maxIterations: number;
18
18
  /** Current step's iteration number (how many times this step has been executed) */
19
19
  stepIteration: number;
20
- /** Working directory (agent work dir, may be a worktree) */
20
+ /** Working directory (agent work dir, may be a clone) */
21
21
  cwd: string;
22
22
  /** Project root directory (where .takt/ lives). Defaults to cwd. */
23
23
  projectCwd?: string;
@@ -32,7 +32,7 @@ export interface InstructionContext {
32
32
  }
33
33
  /** Execution environment metadata prepended to agent instructions */
34
34
  export interface ExecutionMetadata {
35
- /** The agent's working directory (may be a worktree) */
35
+ /** The agent's working directory (may be a clone) */
36
36
  readonly workingDirectory: string;
37
37
  /** Language for metadata rendering */
38
38
  readonly language: Language;
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-builder.d.ts","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGhF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,4DAA4D;IAC5D,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAKrF;AAgBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAGlE;AAsBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgB3E;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAyDR"}
1
+ {"version":3,"file":"instruction-builder.d.ts","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAGhF;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,0DAA0D;IAC1D,SAAS,EAAE,MAAM,CAAC;IAClB,iCAAiC;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,aAAa,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,GAAG,EAAE,MAAM,CAAC;IACZ,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,wCAAwC;IACxC,cAAc,CAAC,EAAE,aAAa,CAAC;IAC/B,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qEAAqE;AACrE,MAAM,WAAW,iBAAiB;IAChC,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;IAClC,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CAKrF;AAgBD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAGlE;AAsBD;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,CAgB3E;AASD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,YAAY,EAClB,OAAO,EAAE,kBAAkB,GAC1B,MAAM,CAsDR"}
@@ -4,7 +4,6 @@
4
4
  * Builds the instruction string for agent execution by replacing
5
5
  * template placeholders with actual values.
6
6
  */
7
- import { join } from 'node:path';
8
7
  import { getGitDiff } from '../agents/runner.js';
9
8
  /**
10
9
  * Build execution metadata from instruction context.
@@ -123,14 +122,11 @@ export function buildInstruction(step, context) {
123
122
  // Replace {user_inputs}
124
123
  const userInputsStr = context.userInputs.join('\n');
125
124
  instruction = instruction.replace(/\{user_inputs\}/g, escapeTemplateChars(userInputsStr));
126
- // Replace .takt/reports/{report_dir} with absolute path first,
127
- // then replace standalone {report_dir} with the directory name.
128
- // This ensures agents always use the correct project root for reports,
129
- // even when their cwd is a worktree.
125
+ // Replace {report_dir} with the directory name, keeping paths relative.
126
+ // In worktree mode, a symlink from cwd/.takt/reports → projectCwd/.takt/reports
127
+ // ensures the relative path resolves correctly without embedding absolute paths
128
+ // that could cause agents to operate on the wrong repository.
130
129
  if (context.reportDir) {
131
- const projectRoot = context.projectCwd ?? context.cwd;
132
- const reportDirFullPath = join(projectRoot, '.takt', 'reports', context.reportDir);
133
- instruction = instruction.replace(/\.takt\/reports\/\{report_dir\}/g, reportDirFullPath);
134
130
  instruction = instruction.replace(/\{report_dir\}/g, context.reportDir);
135
131
  }
136
132
  // Append status_rules_prompt with localized header if present