takt 0.2.1 → 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 (121) hide show
  1. package/README.md +67 -38
  2. package/dist/cli.d.ts +4 -2
  3. package/dist/cli.d.ts.map +1 -1
  4. package/dist/cli.js +27 -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/listTasks.js +353 -0
  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 +26 -17
  21. package/dist/commands/taskExecution.js.map +1 -1
  22. package/dist/commands/workflowExecution.d.ts.map +1 -1
  23. package/dist/commands/workflowExecution.js +11 -10
  24. package/dist/commands/workflowExecution.js.map +1 -1
  25. package/dist/config/globalConfig.d.ts.map +1 -1
  26. package/dist/config/globalConfig.js +4 -0
  27. package/dist/config/globalConfig.js.map +1 -1
  28. package/dist/config/paths.d.ts +1 -1
  29. package/dist/config/paths.d.ts.map +1 -1
  30. package/dist/config/paths.js +3 -1
  31. package/dist/config/paths.js.map +1 -1
  32. package/dist/config/sessionStore.d.ts +10 -0
  33. package/dist/config/sessionStore.d.ts.map +1 -1
  34. package/dist/config/sessionStore.js +54 -0
  35. package/dist/config/sessionStore.js.map +1 -1
  36. package/dist/models/schemas.d.ts +1 -0
  37. package/dist/models/schemas.d.ts.map +1 -1
  38. package/dist/models/schemas.js +2 -0
  39. package/dist/models/schemas.js.map +1 -1
  40. package/dist/models/types.d.ts +2 -0
  41. package/dist/models/types.d.ts.map +1 -1
  42. package/dist/resources/index.d.ts.map +1 -1
  43. package/dist/resources/index.js +6 -3
  44. package/dist/resources/index.js.map +1 -1
  45. package/dist/task/autoCommit.d.ts +9 -6
  46. package/dist/task/autoCommit.d.ts.map +1 -1
  47. package/dist/task/autoCommit.js +21 -12
  48. package/dist/task/autoCommit.js.map +1 -1
  49. package/dist/task/branchList.d.ts +55 -0
  50. package/dist/task/branchList.d.ts.map +1 -0
  51. package/dist/task/branchList.js +131 -0
  52. package/dist/task/branchList.js.map +1 -0
  53. package/dist/task/clone.d.ts +53 -0
  54. package/dist/task/clone.d.ts.map +1 -0
  55. package/dist/task/clone.js +181 -0
  56. package/dist/task/clone.js.map +1 -0
  57. package/dist/task/index.d.ts +3 -2
  58. package/dist/task/index.d.ts.map +1 -1
  59. package/dist/task/index.js +3 -2
  60. package/dist/task/index.js.map +1 -1
  61. package/dist/task/runner.d.ts +14 -0
  62. package/dist/task/runner.d.ts.map +1 -1
  63. package/dist/task/runner.js +30 -7
  64. package/dist/task/runner.js.map +1 -1
  65. package/dist/task/schema.d.ts +4 -4
  66. package/dist/task/schema.js +4 -4
  67. package/dist/task/summarize.d.ts +22 -0
  68. package/dist/task/summarize.d.ts.map +1 -0
  69. package/dist/task/summarize.js +83 -0
  70. package/dist/task/summarize.js.map +1 -0
  71. package/dist/utils/updateNotifier.d.ts +6 -0
  72. package/dist/utils/updateNotifier.d.ts.map +1 -0
  73. package/dist/utils/updateNotifier.js +17 -0
  74. package/dist/utils/updateNotifier.js.map +1 -0
  75. package/dist/workflow/engine.d.ts +1 -1
  76. package/dist/workflow/engine.d.ts.map +1 -1
  77. package/dist/workflow/engine.js +10 -2
  78. package/dist/workflow/engine.js.map +1 -1
  79. package/dist/workflow/instruction-builder.d.ts +8 -7
  80. package/dist/workflow/instruction-builder.d.ts.map +1 -1
  81. package/dist/workflow/instruction-builder.js +39 -24
  82. package/dist/workflow/instruction-builder.js.map +1 -1
  83. package/package.json +4 -1
  84. package/resources/global/en/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
  85. package/resources/global/en/agents/default/coder.md +3 -3
  86. package/resources/global/en/agents/default/planner.md +14 -1
  87. package/resources/global/en/workflows/default.yaml +6 -51
  88. package/resources/global/en/workflows/{expert-review.yaml → expert-cqrs.yaml} +14 -49
  89. package/resources/global/en/workflows/expert.yaml +1106 -0
  90. package/resources/global/en/workflows/magi.yaml +0 -9
  91. package/resources/global/en/workflows/research.yaml +0 -9
  92. package/resources/global/en/workflows/simple.yaml +5 -26
  93. package/resources/global/ja/agents/default/{ai-reviewer.md → ai-antipattern-reviewer.md} +22 -1
  94. package/resources/global/ja/agents/default/coder.md +3 -3
  95. package/resources/global/ja/agents/default/planner.md +14 -1
  96. package/resources/global/ja/workflows/default.yaml +6 -51
  97. package/resources/global/ja/workflows/{expert-review.yaml → expert-cqrs.yaml} +15 -55
  98. package/resources/global/ja/workflows/expert.yaml +1106 -0
  99. package/resources/global/ja/workflows/magi.yaml +0 -9
  100. package/resources/global/ja/workflows/research.yaml +0 -9
  101. package/resources/global/ja/workflows/simple.yaml +5 -26
  102. package/resources/project/dotgitignore +10 -0
  103. package/resources/project/tasks/TASK-FORMAT +37 -0
  104. package/dist/commands/reviewTasks.d.ts +0 -32
  105. package/dist/commands/reviewTasks.d.ts.map +0 -1
  106. package/dist/commands/reviewTasks.js +0 -198
  107. package/dist/commands/reviewTasks.js.map +0 -1
  108. package/dist/task/worktree.d.ts +0 -70
  109. package/dist/task/worktree.d.ts.map +0 -1
  110. package/dist/task/worktree.js +0 -221
  111. package/dist/task/worktree.js.map +0 -1
  112. /package/resources/global/en/agents/{expert-review → expert}/frontend-reviewer.md +0 -0
  113. /package/resources/global/en/agents/{expert-review → expert}/qa-reviewer.md +0 -0
  114. /package/resources/global/en/agents/{expert-review → expert}/security-reviewer.md +0 -0
  115. /package/resources/global/en/agents/{expert-review → expert}/supervisor.md +0 -0
  116. /package/resources/global/en/agents/{expert-review → expert-cqrs}/cqrs-es-reviewer.md +0 -0
  117. /package/resources/global/ja/agents/{expert-review → expert}/frontend-reviewer.md +0 -0
  118. /package/resources/global/ja/agents/{expert-review → expert}/qa-reviewer.md +0 -0
  119. /package/resources/global/ja/agents/{expert-review → expert}/security-reviewer.md +0 -0
  120. /package/resources/global/ja/agents/{expert-review → expert}/supervisor.md +0 -0
  121. /package/resources/global/ja/agents/{expert-review → expert-cqrs}/cqrs-es-reviewer.md +0 -0
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Task name summarization using AI or romanization
3
+ *
4
+ * Generates concise English/romaji summaries for use in branch names and clone paths.
5
+ */
6
+ import * as wanakana from 'wanakana';
7
+ import { loadGlobalConfig } from '../config/globalConfig.js';
8
+ import { getProvider } from '../providers/index.js';
9
+ import { createLogger } from '../utils/debug.js';
10
+ const log = createLogger('summarize');
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.
30
+
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.
33
+
34
+ Format: verb-noun (lowercase, hyphens, max 30 chars)
35
+
36
+ Input → Output:
37
+ 認証機能を追加する → add-auth
38
+ Fix the login bug → fix-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
+ }
52
+ /**
53
+ * Summarize a task name into a concise slug using AI or romanization.
54
+ *
55
+ * @param taskName - Original task name (can be in any language)
56
+ * @param options - Summarization options
57
+ * @returns Slug suitable for branch names (English if LLM, romaji if not)
58
+ */
59
+ export async function summarizeTaskName(taskName, options) {
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, {
74
+ cwd: options.cwd,
75
+ model,
76
+ systemPrompt: SUMMARIZE_SYSTEM_PROMPT,
77
+ allowedTools: [],
78
+ });
79
+ const slug = sanitizeSlug(response.content);
80
+ log.info('Task name summarized', { original: taskName, slug });
81
+ return slug || 'task';
82
+ }
83
+ //# sourceMappingURL=summarize.js.map
@@ -0,0 +1 @@
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,10 +32,8 @@ 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
- /** Project root where .takt/ lives. Present only in worktree mode. */
38
- readonly projectRoot?: string;
39
37
  /** Language for metadata rendering */
40
38
  readonly language: Language;
41
39
  }
@@ -43,15 +41,18 @@ export interface ExecutionMetadata {
43
41
  * Build execution metadata from instruction context.
44
42
  *
45
43
  * Pure function: InstructionContext → ExecutionMetadata.
46
- * Sets `projectRoot` only when cwd differs from projectCwd (worktree mode).
47
44
  */
48
45
  export declare function buildExecutionMetadata(context: InstructionContext): ExecutionMetadata;
46
+ /**
47
+ * Render status rules header.
48
+ * Prepended to status_rules_prompt when it exists.
49
+ */
50
+ export declare function renderStatusRulesHeader(language: Language): string;
49
51
  /**
50
52
  * Render execution metadata as a markdown string.
51
53
  *
52
54
  * Pure function: ExecutionMetadata → string.
53
- * Always includes heading + Working Directory.
54
- * Adds Project Root and Mode only in worktree mode (when projectRoot is present).
55
+ * Always includes heading + Working Directory + Execution Rules.
55
56
  * Language determines the output language; 'en' includes a note about language consistency.
56
57
  */
57
58
  export declare function renderExecutionMetadata(metadata: ExecutionMetadata): string;
@@ -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,sEAAsE;IACtE,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,kBAAkB,GAAG,iBAAiB,CASrF;AAoBD;;;;;;;GAOG;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,CAwDR"}
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,37 +4,55 @@
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.
11
10
  *
12
11
  * Pure function: InstructionContext → ExecutionMetadata.
13
- * Sets `projectRoot` only when cwd differs from projectCwd (worktree mode).
14
12
  */
15
13
  export function buildExecutionMetadata(context) {
16
- const projectRoot = context.projectCwd ?? context.cwd;
17
- const isWorktree = context.cwd !== projectRoot;
18
14
  return {
19
15
  workingDirectory: context.cwd,
20
- ...(isWorktree ? { projectRoot } : {}),
21
16
  language: context.language ?? 'en',
22
17
  };
23
18
  }
19
+ /** Localized strings for status rules header */
20
+ const STATUS_RULES_HEADER_STRINGS = {
21
+ en: {
22
+ heading: '# ⚠️ Required: Status Output Rules ⚠️',
23
+ warning: '**The workflow will stop without this tag.**',
24
+ instruction: 'Your final output MUST include a status tag following the rules below.',
25
+ },
26
+ ja: {
27
+ heading: '# ⚠️ 必須: ステータス出力ルール ⚠️',
28
+ warning: '**このタグがないとワークフローが停止します。**',
29
+ instruction: '最終出力には必ず以下のルールに従ったステータスタグを含めてください。',
30
+ },
31
+ };
32
+ /**
33
+ * Render status rules header.
34
+ * Prepended to status_rules_prompt when it exists.
35
+ */
36
+ export function renderStatusRulesHeader(language) {
37
+ const strings = STATUS_RULES_HEADER_STRINGS[language];
38
+ return [strings.heading, '', strings.warning, strings.instruction, ''].join('\n');
39
+ }
24
40
  /** Localized strings for execution metadata rendering */
25
41
  const METADATA_STRINGS = {
26
42
  en: {
27
43
  heading: '## Execution Context',
28
44
  workingDirectory: 'Working Directory',
29
- projectRoot: 'Project Root',
30
- mode: 'Mode: worktree (source edits in Working Directory, reports in Project Root)',
45
+ rulesHeading: '## Execution Rules',
46
+ noCommit: '**Do NOT run git commit.** Commits are handled automatically by the system after workflow completion.',
47
+ noCd: '**Do NOT use `cd` in Bash commands.** Your working directory is already set correctly. Run commands directly without changing directories.',
31
48
  note: 'Note: This section is metadata. Follow the language used in the rest of the prompt.',
32
49
  },
33
50
  ja: {
34
51
  heading: '## 実行コンテキスト',
35
52
  workingDirectory: '作業ディレクトリ',
36
- projectRoot: 'プロジェクトルート',
37
- mode: 'モード: worktree(ソース編集は作業ディレクトリ、レポートはプロジェクトルート)',
53
+ rulesHeading: '## 実行ルール',
54
+ noCommit: '**git commit を実行しないでください。** コミットはワークフロー完了後にシステムが自動で行います。',
55
+ noCd: '**Bashコマンドで `cd` を使用しないでください。** 作業ディレクトリは既に正しく設定されています。ディレクトリを変更せずにコマンドを実行してください。',
38
56
  note: '',
39
57
  },
40
58
  };
@@ -42,8 +60,7 @@ const METADATA_STRINGS = {
42
60
  * Render execution metadata as a markdown string.
43
61
  *
44
62
  * Pure function: ExecutionMetadata → string.
45
- * Always includes heading + Working Directory.
46
- * Adds Project Root and Mode only in worktree mode (when projectRoot is present).
63
+ * Always includes heading + Working Directory + Execution Rules.
47
64
  * Language determines the output language; 'en' includes a note about language consistency.
48
65
  */
49
66
  export function renderExecutionMetadata(metadata) {
@@ -51,11 +68,11 @@ export function renderExecutionMetadata(metadata) {
51
68
  const lines = [
52
69
  strings.heading,
53
70
  `- ${strings.workingDirectory}: ${metadata.workingDirectory}`,
71
+ '',
72
+ strings.rulesHeading,
73
+ `- ${strings.noCommit}`,
74
+ `- ${strings.noCd}`,
54
75
  ];
55
- if (metadata.projectRoot !== undefined) {
56
- lines.push(`- ${strings.projectRoot}: ${metadata.projectRoot}`);
57
- lines.push(`- ${strings.mode}`);
58
- }
59
76
  if (strings.note) {
60
77
  lines.push('');
61
78
  lines.push(strings.note);
@@ -105,19 +122,17 @@ export function buildInstruction(step, context) {
105
122
  // Replace {user_inputs}
106
123
  const userInputsStr = context.userInputs.join('\n');
107
124
  instruction = instruction.replace(/\{user_inputs\}/g, escapeTemplateChars(userInputsStr));
108
- // Replace .takt/reports/{report_dir} with absolute path first,
109
- // then replace standalone {report_dir} with the directory name.
110
- // This ensures agents always use the correct project root for reports,
111
- // 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.
112
129
  if (context.reportDir) {
113
- const projectRoot = context.projectCwd ?? context.cwd;
114
- const reportDirFullPath = join(projectRoot, '.takt', 'reports', context.reportDir);
115
- instruction = instruction.replace(/\.takt\/reports\/\{report_dir\}/g, reportDirFullPath);
116
130
  instruction = instruction.replace(/\{report_dir\}/g, context.reportDir);
117
131
  }
118
- // Append status_rules_prompt if present
132
+ // Append status_rules_prompt with localized header if present
119
133
  if (step.statusRulesPrompt) {
120
- instruction = `${instruction}\n\n${step.statusRulesPrompt}`;
134
+ const statusHeader = renderStatusRulesHeader(context.language ?? 'en');
135
+ instruction = `${instruction}\n\n${statusHeader}\n${step.statusRulesPrompt}`;
121
136
  }
122
137
  // Prepend execution context metadata so agents see it first.
123
138
  // Now language-aware, so no need to hide it at the end.
@@ -1 +1 @@
1
- {"version":3,"file":"instruction-builder.js","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instruction-builder.js","sourceRoot":"","sources":["../../src/workflow/instruction-builder.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "takt",
3
- "version": "0.2.1",
3
+ "version": "0.2.3",
4
4
  "description": "TAKT: Task Agent Koordination Tool - AI Agent Workflow Orchestration",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -54,12 +54,15 @@
54
54
  "@openai/codex-sdk": "^0.91.0",
55
55
  "chalk": "^5.3.0",
56
56
  "commander": "^12.1.0",
57
+ "update-notifier": "^7.3.1",
58
+ "wanakana": "^5.3.1",
57
59
  "yaml": "^2.4.5",
58
60
  "zod": "^4.3.6"
59
61
  },
60
62
  "devDependencies": {
61
63
  "@eslint/js": "^9.39.2",
62
64
  "@types/node": "^20.14.0",
65
+ "@types/wanakana": "^4.0.6",
63
66
  "@typescript-eslint/eslint-plugin": "^8.0.0",
64
67
  "@typescript-eslint/parser": "^8.0.0",
65
68
  "eslint": "^9.0.0",
@@ -96,7 +96,28 @@ AI-generated code has unique characteristics:
96
96
 
97
97
  **Principle:** The best code is the minimum code that solves the problem.
98
98
 
99
- ### 6. Decision Traceability Review
99
+ ### 6. Fallback Prohibition Review (REJECT criteria)
100
+
101
+ **AI overuses fallbacks to hide uncertainty. This is a REJECT by default.**
102
+
103
+ | Pattern | Example | Verdict |
104
+ |---------|---------|---------|
105
+ | Swallowing with defaults | `?? 'unknown'`, `\|\| 'default'`, `?? []` | REJECT |
106
+ | try-catch returning empty | `catch { return ''; }` `catch { return 0; }` | REJECT |
107
+ | Silent skip via conditionals | `if (!x) return;` skipping what should be an error | REJECT |
108
+ | Multi-level fallback chains | `a ?? b ?? c ?? d` | REJECT |
109
+
110
+ **Exceptions (do NOT reject):**
111
+ - Default values when validating external input (user input, API responses)
112
+ - Fallbacks with an explicit comment explaining the reason
113
+ - Defaults for optional values in configuration files
114
+
115
+ **Verification approach:**
116
+ 1. Grep the diff for `??`, `||`, `catch`
117
+ 2. Check whether each fallback has a legitimate reason
118
+ 3. REJECT if even one unjustified fallback exists
119
+
120
+ ### 7. Decision Traceability Review
100
121
 
101
122
  **Verify that Coder's decision log is reasonable.**
102
123
 
@@ -32,6 +32,7 @@ When receiving a task, first understand the requirements precisely.
32
32
  - What to build (functionality, behavior)
33
33
  - Where to build it (files, modules)
34
34
  - Relationship with existing code (dependencies, impact scope)
35
+ - When updating docs/config: verify source of truth for content you'll write (actual file names, config values, command names — don't guess, check actual code)
35
36
 
36
37
  **Report with `[BLOCKED]` if unclear.** Don't proceed with guesses.
37
38
 
@@ -90,6 +91,7 @@ Perform self-check after implementation.
90
91
  | Syntax errors | Build/compile |
91
92
  | Tests | Run tests |
92
93
  | Requirements met | Compare with original task requirements |
94
+ | Factual accuracy | Verify that names, values, and behaviors written in docs/config match the actual codebase |
93
95
 
94
96
  **Output `[DONE]` only after all checks pass.**
95
97
 
@@ -105,8 +107,6 @@ Perform self-check after implementation.
105
107
  | Boy Scout | Leave touched areas slightly improved |
106
108
  | Fail Fast | Detect errors early. Don't swallow them |
107
109
 
108
- **When in doubt**: Choose Simple.
109
-
110
110
  ## Abstraction Principles
111
111
 
112
112
  **Before adding conditional branches, consider:**
@@ -289,7 +289,7 @@ test('returns NotFound error when user does not exist', async () => {
289
289
 
290
290
  ## Prohibited
291
291
 
292
- - **Fallback value overuse** - Don't hide problems with `?? 'unknown'`, `|| 'default'`
292
+ - **Fallbacks are prohibited by default** - Don't write fallbacks with `?? 'unknown'`, `|| 'default'`, or `try-catch` that swallow errors. Propagate errors upward. If absolutely necessary, document the reason in a comment
293
293
  - **Explanatory comments** - Express intent through code
294
294
  - **Unused code** - Don't write "just in case" code
295
295
  - **any type** - Don't break type safety
@@ -33,7 +33,20 @@ Identify the scope of changes:
33
33
  - Dependencies
34
34
  - Impact on tests
35
35
 
36
- ### 3. Implementation Approach
36
+ ### 3. Fact-Checking (Source of Truth Verification)
37
+
38
+ Always verify information used in your analysis against the source of truth:
39
+
40
+ | Information Type | Source of Truth |
41
+ |-----------------|-----------------|
42
+ | Code behavior | Actual source code |
43
+ | Config values / names | Actual config files / definition files |
44
+ | APIs / commands | Actual implementation code |
45
+ | Documentation claims | Cross-check with actual codebase |
46
+
47
+ **Don't guess.** Always verify names, values, and behaviors against actual code.
48
+
49
+ ### 4. Implementation Approach
37
50
 
38
51
  Determine the implementation direction:
39
52