takt 0.1.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 (480) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +307 -0
  3. package/bin/takt +27 -0
  4. package/dist/agents/index.d.ts +5 -0
  5. package/dist/agents/index.d.ts.map +1 -0
  6. package/dist/agents/index.js +5 -0
  7. package/dist/agents/index.js.map +1 -0
  8. package/dist/agents/runner.d.ts +26 -0
  9. package/dist/agents/runner.d.ts.map +1 -0
  10. package/dist/agents/runner.js +144 -0
  11. package/dist/agents/runner.js.map +1 -0
  12. package/dist/claude/client.d.ts +43 -0
  13. package/dist/claude/client.d.ts.map +1 -0
  14. package/dist/claude/client.js +143 -0
  15. package/dist/claude/client.js.map +1 -0
  16. package/dist/claude/executor.d.ts +29 -0
  17. package/dist/claude/executor.d.ts.map +1 -0
  18. package/dist/claude/executor.js +169 -0
  19. package/dist/claude/executor.js.map +1 -0
  20. package/dist/claude/index.d.ts +14 -0
  21. package/dist/claude/index.d.ts.map +1 -0
  22. package/dist/claude/index.js +18 -0
  23. package/dist/claude/index.js.map +1 -0
  24. package/dist/claude/options-builder.d.ts +40 -0
  25. package/dist/claude/options-builder.d.ts.map +1 -0
  26. package/dist/claude/options-builder.js +90 -0
  27. package/dist/claude/options-builder.js.map +1 -0
  28. package/dist/claude/process.d.ts +57 -0
  29. package/dist/claude/process.d.ts.map +1 -0
  30. package/dist/claude/process.js +57 -0
  31. package/dist/claude/process.js.map +1 -0
  32. package/dist/claude/query-manager.d.ts +35 -0
  33. package/dist/claude/query-manager.d.ts.map +1 -0
  34. package/dist/claude/query-manager.js +74 -0
  35. package/dist/claude/query-manager.js.map +1 -0
  36. package/dist/claude/stream-converter.d.ts +19 -0
  37. package/dist/claude/stream-converter.d.ts.map +1 -0
  38. package/dist/claude/stream-converter.js +166 -0
  39. package/dist/claude/stream-converter.js.map +1 -0
  40. package/dist/claude/types.d.ts +99 -0
  41. package/dist/claude/types.d.ts.map +1 -0
  42. package/dist/claude/types.js +8 -0
  43. package/dist/claude/types.js.map +1 -0
  44. package/dist/cli/agentExecution.d.ts +16 -0
  45. package/dist/cli/agentExecution.d.ts.map +1 -0
  46. package/dist/cli/agentExecution.js +40 -0
  47. package/dist/cli/agentExecution.js.map +1 -0
  48. package/dist/cli/help.d.ts +8 -0
  49. package/dist/cli/help.d.ts.map +1 -0
  50. package/dist/cli/help.js +46 -0
  51. package/dist/cli/help.js.map +1 -0
  52. package/dist/cli/index.d.ts +8 -0
  53. package/dist/cli/index.d.ts.map +1 -0
  54. package/dist/cli/index.js +8 -0
  55. package/dist/cli/index.js.map +1 -0
  56. package/dist/cli/taskBatch.d.ts +8 -0
  57. package/dist/cli/taskBatch.d.ts.map +1 -0
  58. package/dist/cli/taskBatch.js +69 -0
  59. package/dist/cli/taskBatch.js.map +1 -0
  60. package/dist/cli/workflowExecution.d.ts +18 -0
  61. package/dist/cli/workflowExecution.d.ts.map +1 -0
  62. package/dist/cli/workflowExecution.js +112 -0
  63. package/dist/cli/workflowExecution.js.map +1 -0
  64. package/dist/cli.d.ts +14 -0
  65. package/dist/cli.d.ts.map +1 -0
  66. package/dist/cli.js +122 -0
  67. package/dist/cli.js.map +1 -0
  68. package/dist/commands/agentExecution.d.ts +8 -0
  69. package/dist/commands/agentExecution.d.ts.map +1 -0
  70. package/dist/commands/agentExecution.js +44 -0
  71. package/dist/commands/agentExecution.js.map +1 -0
  72. package/dist/commands/help.d.ts +8 -0
  73. package/dist/commands/help.d.ts.map +1 -0
  74. package/dist/commands/help.js +39 -0
  75. package/dist/commands/help.js.map +1 -0
  76. package/dist/commands/index.d.ts +9 -0
  77. package/dist/commands/index.d.ts.map +1 -0
  78. package/dist/commands/index.js +9 -0
  79. package/dist/commands/index.js.map +1 -0
  80. package/dist/commands/session.d.ts +10 -0
  81. package/dist/commands/session.d.ts.map +1 -0
  82. package/dist/commands/session.js +18 -0
  83. package/dist/commands/session.js.map +1 -0
  84. package/dist/commands/taskExecution.d.ts +20 -0
  85. package/dist/commands/taskExecution.d.ts.map +1 -0
  86. package/dist/commands/taskExecution.js +103 -0
  87. package/dist/commands/taskExecution.js.map +1 -0
  88. package/dist/commands/workflow.d.ts +9 -0
  89. package/dist/commands/workflow.d.ts.map +1 -0
  90. package/dist/commands/workflow.js +51 -0
  91. package/dist/commands/workflow.js.map +1 -0
  92. package/dist/commands/workflowExecution.d.ts +21 -0
  93. package/dist/commands/workflowExecution.d.ts.map +1 -0
  94. package/dist/commands/workflowExecution.js +95 -0
  95. package/dist/commands/workflowExecution.js.map +1 -0
  96. package/dist/config/agentLoader.d.ts +25 -0
  97. package/dist/config/agentLoader.d.ts.map +1 -0
  98. package/dist/config/agentLoader.js +96 -0
  99. package/dist/config/agentLoader.js.map +1 -0
  100. package/dist/config/globalConfig.d.ts +23 -0
  101. package/dist/config/globalConfig.d.ts.map +1 -0
  102. package/dist/config/globalConfig.js +117 -0
  103. package/dist/config/globalConfig.js.map +1 -0
  104. package/dist/config/index.d.ts +7 -0
  105. package/dist/config/index.d.ts.map +1 -0
  106. package/dist/config/index.js +7 -0
  107. package/dist/config/index.js.map +1 -0
  108. package/dist/config/initialization.d.ts +23 -0
  109. package/dist/config/initialization.d.ts.map +1 -0
  110. package/dist/config/initialization.js +55 -0
  111. package/dist/config/initialization.js.map +1 -0
  112. package/dist/config/loader.d.ts +9 -0
  113. package/dist/config/loader.d.ts.map +1 -0
  114. package/dist/config/loader.js +12 -0
  115. package/dist/config/loader.js.map +1 -0
  116. package/dist/config/paths.d.ts +33 -0
  117. package/dist/config/paths.d.ts.map +1 -0
  118. package/dist/config/paths.js +66 -0
  119. package/dist/config/paths.js.map +1 -0
  120. package/dist/config/projectConfig.d.ts +41 -0
  121. package/dist/config/projectConfig.d.ts.map +1 -0
  122. package/dist/config/projectConfig.js +85 -0
  123. package/dist/config/projectConfig.js.map +1 -0
  124. package/dist/config/sessionStore.d.ts +44 -0
  125. package/dist/config/sessionStore.d.ts.map +1 -0
  126. package/dist/config/sessionStore.js +194 -0
  127. package/dist/config/sessionStore.js.map +1 -0
  128. package/dist/config/workflowLoader.d.ts +23 -0
  129. package/dist/config/workflowLoader.d.ts.map +1 -0
  130. package/dist/config/workflowLoader.js +142 -0
  131. package/dist/config/workflowLoader.js.map +1 -0
  132. package/dist/constants.d.ts +9 -0
  133. package/dist/constants.d.ts.map +1 -0
  134. package/dist/constants.js +8 -0
  135. package/dist/constants.js.map +1 -0
  136. package/dist/index.d.ts +13 -0
  137. package/dist/index.d.ts.map +1 -0
  138. package/dist/index.js +20 -0
  139. package/dist/index.js.map +1 -0
  140. package/dist/interactive/commands/agent.d.ts +7 -0
  141. package/dist/interactive/commands/agent.d.ts.map +1 -0
  142. package/dist/interactive/commands/agent.js +65 -0
  143. package/dist/interactive/commands/agent.js.map +1 -0
  144. package/dist/interactive/commands/basic.d.ts +7 -0
  145. package/dist/interactive/commands/basic.d.ts.map +1 -0
  146. package/dist/interactive/commands/basic.js +81 -0
  147. package/dist/interactive/commands/basic.js.map +1 -0
  148. package/dist/interactive/commands/index.d.ts +12 -0
  149. package/dist/interactive/commands/index.d.ts.map +1 -0
  150. package/dist/interactive/commands/index.js +14 -0
  151. package/dist/interactive/commands/index.js.map +1 -0
  152. package/dist/interactive/commands/registry.d.ts +41 -0
  153. package/dist/interactive/commands/registry.d.ts.map +1 -0
  154. package/dist/interactive/commands/registry.js +37 -0
  155. package/dist/interactive/commands/registry.js.map +1 -0
  156. package/dist/interactive/commands/session.d.ts +7 -0
  157. package/dist/interactive/commands/session.d.ts.map +1 -0
  158. package/dist/interactive/commands/session.js +75 -0
  159. package/dist/interactive/commands/session.js.map +1 -0
  160. package/dist/interactive/commands/task.d.ts +7 -0
  161. package/dist/interactive/commands/task.d.ts.map +1 -0
  162. package/dist/interactive/commands/task.js +156 -0
  163. package/dist/interactive/commands/task.js.map +1 -0
  164. package/dist/interactive/commands/workflow.d.ts +7 -0
  165. package/dist/interactive/commands/workflow.d.ts.map +1 -0
  166. package/dist/interactive/commands/workflow.js +56 -0
  167. package/dist/interactive/commands/workflow.js.map +1 -0
  168. package/dist/interactive/escape-tracker.d.ts +37 -0
  169. package/dist/interactive/escape-tracker.d.ts.map +1 -0
  170. package/dist/interactive/escape-tracker.js +52 -0
  171. package/dist/interactive/escape-tracker.js.map +1 -0
  172. package/dist/interactive/handlers.d.ts +24 -0
  173. package/dist/interactive/handlers.d.ts.map +1 -0
  174. package/dist/interactive/handlers.js +191 -0
  175. package/dist/interactive/handlers.js.map +1 -0
  176. package/dist/interactive/history-manager.d.ts +45 -0
  177. package/dist/interactive/history-manager.d.ts.map +1 -0
  178. package/dist/interactive/history-manager.js +91 -0
  179. package/dist/interactive/history-manager.js.map +1 -0
  180. package/dist/interactive/index.d.ts +8 -0
  181. package/dist/interactive/index.d.ts.map +1 -0
  182. package/dist/interactive/index.js +8 -0
  183. package/dist/interactive/index.js.map +1 -0
  184. package/dist/interactive/ink/components/App.d.ts +16 -0
  185. package/dist/interactive/ink/components/App.d.ts.map +1 -0
  186. package/dist/interactive/ink/components/App.js +123 -0
  187. package/dist/interactive/ink/components/App.js.map +1 -0
  188. package/dist/interactive/ink/components/AskUserQuestion.d.ts +16 -0
  189. package/dist/interactive/ink/components/AskUserQuestion.d.ts.map +1 -0
  190. package/dist/interactive/ink/components/AskUserQuestion.js +139 -0
  191. package/dist/interactive/ink/components/AskUserQuestion.js.map +1 -0
  192. package/dist/interactive/ink/components/Header.d.ts +20 -0
  193. package/dist/interactive/ink/components/Header.d.ts.map +1 -0
  194. package/dist/interactive/ink/components/Header.js +7 -0
  195. package/dist/interactive/ink/components/Header.js.map +1 -0
  196. package/dist/interactive/ink/components/HelpView.d.ts +13 -0
  197. package/dist/interactive/ink/components/HelpView.d.ts.map +1 -0
  198. package/dist/interactive/ink/components/HelpView.js +45 -0
  199. package/dist/interactive/ink/components/HelpView.js.map +1 -0
  200. package/dist/interactive/ink/components/IterationLimit.d.ts +19 -0
  201. package/dist/interactive/ink/components/IterationLimit.d.ts.map +1 -0
  202. package/dist/interactive/ink/components/IterationLimit.js +59 -0
  203. package/dist/interactive/ink/components/IterationLimit.js.map +1 -0
  204. package/dist/interactive/ink/components/ModalRouter.d.ts +11 -0
  205. package/dist/interactive/ink/components/ModalRouter.d.ts.map +1 -0
  206. package/dist/interactive/ink/components/ModalRouter.js +71 -0
  207. package/dist/interactive/ink/components/ModalRouter.js.map +1 -0
  208. package/dist/interactive/ink/components/PermissionPrompt.d.ts +17 -0
  209. package/dist/interactive/ink/components/PermissionPrompt.d.ts.map +1 -0
  210. package/dist/interactive/ink/components/PermissionPrompt.js +102 -0
  211. package/dist/interactive/ink/components/PermissionPrompt.js.map +1 -0
  212. package/dist/interactive/ink/components/PromptInput.d.ts +26 -0
  213. package/dist/interactive/ink/components/PromptInput.d.ts.map +1 -0
  214. package/dist/interactive/ink/components/PromptInput.js +70 -0
  215. package/dist/interactive/ink/components/PromptInput.js.map +1 -0
  216. package/dist/interactive/ink/components/Spinner.d.ts +14 -0
  217. package/dist/interactive/ink/components/Spinner.d.ts.map +1 -0
  218. package/dist/interactive/ink/components/Spinner.js +8 -0
  219. package/dist/interactive/ink/components/Spinner.js.map +1 -0
  220. package/dist/interactive/ink/components/StreamingOutput.d.ts +25 -0
  221. package/dist/interactive/ink/components/StreamingOutput.d.ts.map +1 -0
  222. package/dist/interactive/ink/components/StreamingOutput.js +8 -0
  223. package/dist/interactive/ink/components/StreamingOutput.js.map +1 -0
  224. package/dist/interactive/ink/components/UserInputPrompt.d.ts +18 -0
  225. package/dist/interactive/ink/components/UserInputPrompt.d.ts.map +1 -0
  226. package/dist/interactive/ink/components/UserInputPrompt.js +30 -0
  227. package/dist/interactive/ink/components/UserInputPrompt.js.map +1 -0
  228. package/dist/interactive/ink/components/WorkflowSelector.d.ts +18 -0
  229. package/dist/interactive/ink/components/WorkflowSelector.d.ts.map +1 -0
  230. package/dist/interactive/ink/components/WorkflowSelector.js +65 -0
  231. package/dist/interactive/ink/components/WorkflowSelector.js.map +1 -0
  232. package/dist/interactive/ink/constants.d.ts +8 -0
  233. package/dist/interactive/ink/constants.d.ts.map +1 -0
  234. package/dist/interactive/ink/constants.js +8 -0
  235. package/dist/interactive/ink/constants.js.map +1 -0
  236. package/dist/interactive/ink/context/AppContext.d.ts +26 -0
  237. package/dist/interactive/ink/context/AppContext.d.ts.map +1 -0
  238. package/dist/interactive/ink/context/AppContext.js +30 -0
  239. package/dist/interactive/ink/context/AppContext.js.map +1 -0
  240. package/dist/interactive/ink/context/appReducer.d.ts +13 -0
  241. package/dist/interactive/ink/context/appReducer.d.ts.map +1 -0
  242. package/dist/interactive/ink/context/appReducer.js +183 -0
  243. package/dist/interactive/ink/context/appReducer.js.map +1 -0
  244. package/dist/interactive/ink/context/types.d.ts +144 -0
  245. package/dist/interactive/ink/context/types.d.ts.map +1 -0
  246. package/dist/interactive/ink/context/types.js +5 -0
  247. package/dist/interactive/ink/context/types.js.map +1 -0
  248. package/dist/interactive/ink/hooks/keyDetection.d.ts +116 -0
  249. package/dist/interactive/ink/hooks/keyDetection.d.ts.map +1 -0
  250. package/dist/interactive/ink/hooks/keyDetection.js +183 -0
  251. package/dist/interactive/ink/hooks/keyDetection.js.map +1 -0
  252. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts +50 -0
  253. package/dist/interactive/ink/hooks/multilineInputLogic.d.ts.map +1 -0
  254. package/dist/interactive/ink/hooks/multilineInputLogic.js +150 -0
  255. package/dist/interactive/ink/hooks/multilineInputLogic.js.map +1 -0
  256. package/dist/interactive/ink/hooks/useCommands.d.ts +20 -0
  257. package/dist/interactive/ink/hooks/useCommands.d.ts.map +1 -0
  258. package/dist/interactive/ink/hooks/useCommands.js +129 -0
  259. package/dist/interactive/ink/hooks/useCommands.js.map +1 -0
  260. package/dist/interactive/ink/hooks/useHistory.d.ts +28 -0
  261. package/dist/interactive/ink/hooks/useHistory.d.ts.map +1 -0
  262. package/dist/interactive/ink/hooks/useHistory.js +59 -0
  263. package/dist/interactive/ink/hooks/useHistory.js.map +1 -0
  264. package/dist/interactive/ink/hooks/useMultilineInput.d.ts +49 -0
  265. package/dist/interactive/ink/hooks/useMultilineInput.d.ts.map +1 -0
  266. package/dist/interactive/ink/hooks/useMultilineInput.js +106 -0
  267. package/dist/interactive/ink/hooks/useMultilineInput.js.map +1 -0
  268. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts +16 -0
  269. package/dist/interactive/ink/hooks/usePermissionHandlers.d.ts.map +1 -0
  270. package/dist/interactive/ink/hooks/usePermissionHandlers.js +172 -0
  271. package/dist/interactive/ink/hooks/usePermissionHandlers.js.map +1 -0
  272. package/dist/interactive/ink/hooks/useRawKeypress.d.ts +41 -0
  273. package/dist/interactive/ink/hooks/useRawKeypress.d.ts.map +1 -0
  274. package/dist/interactive/ink/hooks/useRawKeypress.js +79 -0
  275. package/dist/interactive/ink/hooks/useRawKeypress.js.map +1 -0
  276. package/dist/interactive/ink/hooks/useTaskQueue.d.ts +32 -0
  277. package/dist/interactive/ink/hooks/useTaskQueue.d.ts.map +1 -0
  278. package/dist/interactive/ink/hooks/useTaskQueue.js +68 -0
  279. package/dist/interactive/ink/hooks/useTaskQueue.js.map +1 -0
  280. package/dist/interactive/ink/hooks/useWorkflow.d.ts +45 -0
  281. package/dist/interactive/ink/hooks/useWorkflow.d.ts.map +1 -0
  282. package/dist/interactive/ink/hooks/useWorkflow.js +93 -0
  283. package/dist/interactive/ink/hooks/useWorkflow.js.map +1 -0
  284. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts +14 -0
  285. package/dist/interactive/ink/hooks/useWorkflowExecution.d.ts.map +1 -0
  286. package/dist/interactive/ink/hooks/useWorkflowExecution.js +144 -0
  287. package/dist/interactive/ink/hooks/useWorkflowExecution.js.map +1 -0
  288. package/dist/interactive/ink/index.d.ts +30 -0
  289. package/dist/interactive/ink/index.d.ts.map +1 -0
  290. package/dist/interactive/ink/index.js +33 -0
  291. package/dist/interactive/ink/index.js.map +1 -0
  292. package/dist/interactive/ink/utils/workflow.d.ts +11 -0
  293. package/dist/interactive/ink/utils/workflow.d.ts.map +1 -0
  294. package/dist/interactive/ink/utils/workflow.js +19 -0
  295. package/dist/interactive/ink/utils/workflow.js.map +1 -0
  296. package/dist/interactive/input-buffer.d.ts +67 -0
  297. package/dist/interactive/input-buffer.d.ts.map +1 -0
  298. package/dist/interactive/input-buffer.js +162 -0
  299. package/dist/interactive/input-buffer.js.map +1 -0
  300. package/dist/interactive/input-handlers.d.ts +50 -0
  301. package/dist/interactive/input-handlers.d.ts.map +1 -0
  302. package/dist/interactive/input-handlers.js +170 -0
  303. package/dist/interactive/input-handlers.js.map +1 -0
  304. package/dist/interactive/input.d.ts +43 -0
  305. package/dist/interactive/input.d.ts.map +1 -0
  306. package/dist/interactive/input.js +74 -0
  307. package/dist/interactive/input.js.map +1 -0
  308. package/dist/interactive/keyDetection.d.ts +85 -0
  309. package/dist/interactive/keyDetection.d.ts.map +1 -0
  310. package/dist/interactive/keyDetection.js +167 -0
  311. package/dist/interactive/keyDetection.js.map +1 -0
  312. package/dist/interactive/multilineInputLogic.d.ts +30 -0
  313. package/dist/interactive/multilineInputLogic.d.ts.map +1 -0
  314. package/dist/interactive/multilineInputLogic.js +143 -0
  315. package/dist/interactive/multilineInputLogic.js.map +1 -0
  316. package/dist/interactive/passthrough.d.ts +30 -0
  317. package/dist/interactive/passthrough.d.ts.map +1 -0
  318. package/dist/interactive/passthrough.js +94 -0
  319. package/dist/interactive/passthrough.js.map +1 -0
  320. package/dist/interactive/permission.d.ts +33 -0
  321. package/dist/interactive/permission.d.ts.map +1 -0
  322. package/dist/interactive/permission.js +231 -0
  323. package/dist/interactive/permission.js.map +1 -0
  324. package/dist/interactive/prompt.d.ts +33 -0
  325. package/dist/interactive/prompt.d.ts.map +1 -0
  326. package/dist/interactive/prompt.js +132 -0
  327. package/dist/interactive/prompt.js.map +1 -0
  328. package/dist/interactive/repl.d.ts +13 -0
  329. package/dist/interactive/repl.d.ts.map +1 -0
  330. package/dist/interactive/repl.js +202 -0
  331. package/dist/interactive/repl.js.map +1 -0
  332. package/dist/interactive/types.d.ts +35 -0
  333. package/dist/interactive/types.d.ts.map +1 -0
  334. package/dist/interactive/types.js +5 -0
  335. package/dist/interactive/types.js.map +1 -0
  336. package/dist/interactive/ui.d.ts +16 -0
  337. package/dist/interactive/ui.d.ts.map +1 -0
  338. package/dist/interactive/ui.js +122 -0
  339. package/dist/interactive/ui.js.map +1 -0
  340. package/dist/interactive/user-input.d.ts +26 -0
  341. package/dist/interactive/user-input.d.ts.map +1 -0
  342. package/dist/interactive/user-input.js +115 -0
  343. package/dist/interactive/user-input.js.map +1 -0
  344. package/dist/interactive/workflow-executor.d.ts +20 -0
  345. package/dist/interactive/workflow-executor.d.ts.map +1 -0
  346. package/dist/interactive/workflow-executor.js +200 -0
  347. package/dist/interactive/workflow-executor.js.map +1 -0
  348. package/dist/models/agent.d.ts +37 -0
  349. package/dist/models/agent.d.ts.map +1 -0
  350. package/dist/models/agent.js +11 -0
  351. package/dist/models/agent.js.map +1 -0
  352. package/dist/models/config.d.ts +19 -0
  353. package/dist/models/config.d.ts.map +1 -0
  354. package/dist/models/config.js +25 -0
  355. package/dist/models/config.js.map +1 -0
  356. package/dist/models/index.d.ts +7 -0
  357. package/dist/models/index.d.ts.map +1 -0
  358. package/dist/models/index.js +11 -0
  359. package/dist/models/index.js.map +1 -0
  360. package/dist/models/schemas.d.ts +161 -0
  361. package/dist/models/schemas.d.ts.map +1 -0
  362. package/dist/models/schemas.js +137 -0
  363. package/dist/models/schemas.js.map +1 -0
  364. package/dist/models/session.d.ts +50 -0
  365. package/dist/models/session.d.ts.map +1 -0
  366. package/dist/models/session.js +45 -0
  367. package/dist/models/session.js.map +1 -0
  368. package/dist/models/types.d.ts +117 -0
  369. package/dist/models/types.d.ts.map +1 -0
  370. package/dist/models/types.js +5 -0
  371. package/dist/models/types.js.map +1 -0
  372. package/dist/models/workflow.d.ts +58 -0
  373. package/dist/models/workflow.d.ts.map +1 -0
  374. package/dist/models/workflow.js +19 -0
  375. package/dist/models/workflow.js.map +1 -0
  376. package/dist/resources/index.d.ts +38 -0
  377. package/dist/resources/index.d.ts.map +1 -0
  378. package/dist/resources/index.js +108 -0
  379. package/dist/resources/index.js.map +1 -0
  380. package/dist/task/display.d.ts +11 -0
  381. package/dist/task/display.d.ts.map +1 -0
  382. package/dist/task/display.js +41 -0
  383. package/dist/task/display.js.map +1 -0
  384. package/dist/task/index.d.ts +6 -0
  385. package/dist/task/index.d.ts.map +1 -0
  386. package/dist/task/index.js +6 -0
  387. package/dist/task/index.js.map +1 -0
  388. package/dist/task/runner.d.ts +68 -0
  389. package/dist/task/runner.d.ts.map +1 -0
  390. package/dist/task/runner.js +172 -0
  391. package/dist/task/runner.js.map +1 -0
  392. package/dist/utils/debug.d.ts +32 -0
  393. package/dist/utils/debug.d.ts.map +1 -0
  394. package/dist/utils/debug.js +135 -0
  395. package/dist/utils/debug.js.map +1 -0
  396. package/dist/utils/error.d.ts +8 -0
  397. package/dist/utils/error.d.ts.map +1 -0
  398. package/dist/utils/error.js +10 -0
  399. package/dist/utils/error.js.map +1 -0
  400. package/dist/utils/index.d.ts +7 -0
  401. package/dist/utils/index.d.ts.map +1 -0
  402. package/dist/utils/index.js +7 -0
  403. package/dist/utils/index.js.map +1 -0
  404. package/dist/utils/notification.d.ts +63 -0
  405. package/dist/utils/notification.d.ts.map +1 -0
  406. package/dist/utils/notification.js +170 -0
  407. package/dist/utils/notification.js.map +1 -0
  408. package/dist/utils/session.d.ts +38 -0
  409. package/dist/utils/session.d.ts.map +1 -0
  410. package/dist/utils/session.js +97 -0
  411. package/dist/utils/session.js.map +1 -0
  412. package/dist/utils/ui.d.ts +91 -0
  413. package/dist/utils/ui.d.ts.map +1 -0
  414. package/dist/utils/ui.js +330 -0
  415. package/dist/utils/ui.js.map +1 -0
  416. package/dist/workflow/blocked-handler.d.ts +27 -0
  417. package/dist/workflow/blocked-handler.d.ts.map +1 -0
  418. package/dist/workflow/blocked-handler.js +40 -0
  419. package/dist/workflow/blocked-handler.js.map +1 -0
  420. package/dist/workflow/constants.d.ts +20 -0
  421. package/dist/workflow/constants.d.ts.map +1 -0
  422. package/dist/workflow/constants.js +20 -0
  423. package/dist/workflow/constants.js.map +1 -0
  424. package/dist/workflow/engine.d.ts +42 -0
  425. package/dist/workflow/engine.d.ts.map +1 -0
  426. package/dist/workflow/engine.js +207 -0
  427. package/dist/workflow/engine.js.map +1 -0
  428. package/dist/workflow/index.d.ts +15 -0
  429. package/dist/workflow/index.d.ts.map +1 -0
  430. package/dist/workflow/index.js +21 -0
  431. package/dist/workflow/index.js.map +1 -0
  432. package/dist/workflow/instruction-builder.d.ts +37 -0
  433. package/dist/workflow/instruction-builder.d.ts.map +1 -0
  434. package/dist/workflow/instruction-builder.js +49 -0
  435. package/dist/workflow/instruction-builder.js.map +1 -0
  436. package/dist/workflow/loop-detector.d.ts +31 -0
  437. package/dist/workflow/loop-detector.d.ts.map +1 -0
  438. package/dist/workflow/loop-detector.js +61 -0
  439. package/dist/workflow/loop-detector.js.map +1 -0
  440. package/dist/workflow/state-manager.d.ts +25 -0
  441. package/dist/workflow/state-manager.d.ts.map +1 -0
  442. package/dist/workflow/state-manager.js +59 -0
  443. package/dist/workflow/state-manager.js.map +1 -0
  444. package/dist/workflow/transitions.d.ts +25 -0
  445. package/dist/workflow/transitions.d.ts.map +1 -0
  446. package/dist/workflow/transitions.js +106 -0
  447. package/dist/workflow/transitions.js.map +1 -0
  448. package/dist/workflow/types.d.ts +74 -0
  449. package/dist/workflow/types.d.ts.map +1 -0
  450. package/dist/workflow/types.js +8 -0
  451. package/dist/workflow/types.js.map +1 -0
  452. package/package.json +67 -0
  453. package/resources/global/en/agents/default/architect.md +292 -0
  454. package/resources/global/en/agents/default/coder.md +169 -0
  455. package/resources/global/en/agents/default/security.md +206 -0
  456. package/resources/global/en/agents/default/supervisor.md +153 -0
  457. package/resources/global/en/agents/magi/balthasar.md +75 -0
  458. package/resources/global/en/agents/magi/casper.md +100 -0
  459. package/resources/global/en/agents/magi/melchior.md +74 -0
  460. package/resources/global/en/agents/research/digger.md +134 -0
  461. package/resources/global/en/agents/research/planner.md +125 -0
  462. package/resources/global/en/agents/research/supervisor.md +86 -0
  463. package/resources/global/en/config.yaml +19 -0
  464. package/resources/global/en/workflows/default.yaml +177 -0
  465. package/resources/global/en/workflows/magi.yaml +96 -0
  466. package/resources/global/en/workflows/research.yaml +112 -0
  467. package/resources/global/ja/agents/default/architect.md +292 -0
  468. package/resources/global/ja/agents/default/coder.md +170 -0
  469. package/resources/global/ja/agents/default/security.md +206 -0
  470. package/resources/global/ja/agents/default/supervisor.md +153 -0
  471. package/resources/global/ja/agents/magi/balthasar.md +75 -0
  472. package/resources/global/ja/agents/magi/casper.md +100 -0
  473. package/resources/global/ja/agents/magi/melchior.md +74 -0
  474. package/resources/global/ja/agents/research/digger.md +134 -0
  475. package/resources/global/ja/agents/research/planner.md +125 -0
  476. package/resources/global/ja/agents/research/supervisor.md +86 -0
  477. package/resources/global/ja/config.yaml +19 -0
  478. package/resources/global/ja/workflows/default.yaml +177 -0
  479. package/resources/global/ja/workflows/magi.yaml +96 -0
  480. package/resources/global/ja/workflows/research.yaml +112 -0
@@ -0,0 +1,112 @@
1
+ # Research Workflow
2
+ # A workflow that autonomously executes research tasks
3
+ # Planner creates the plan, Digger executes, Supervisor verifies
4
+ #
5
+ # Flow:
6
+ # plan -> dig -> supervise -> COMPLETE (approved)
7
+ # -> plan (rejected: restart from planning)
8
+
9
+ name: research
10
+ description: Research workflow - autonomously executes research without asking questions
11
+
12
+ max_iterations: 10
13
+
14
+ steps:
15
+ - name: plan
16
+ agent: ~/.takt/agents/research/planner.md
17
+ instruction_template: |
18
+ ## Workflow Status
19
+ - Iteration: {iteration}/{max_iterations}
20
+ - Step: plan
21
+
22
+ ## Research Request
23
+ {task}
24
+
25
+ ## Supervisor Feedback (for re-planning)
26
+ {previous_response}
27
+
28
+ ## Additional User Inputs
29
+ {user_inputs}
30
+
31
+ ## Instructions
32
+ Create a research plan for the above request.
33
+
34
+ **Important**: Do not ask the user questions.
35
+ - Make assumptions for unclear points and proceed
36
+ - If multiple interpretations exist, include all in the research scope
37
+ - If there is feedback from Supervisor, incorporate it into the plan
38
+
39
+ Output [PLANNER:DONE] when the plan is complete.
40
+ pass_previous_response: true
41
+ transitions:
42
+ - condition: done
43
+ next_step: dig
44
+ - condition: blocked
45
+ next_step: ABORT
46
+
47
+ - name: dig
48
+ agent: ~/.takt/agents/research/digger.md
49
+ instruction_template: |
50
+ ## Workflow Status
51
+ - Iteration: {iteration}/{max_iterations}
52
+ - Step: dig
53
+
54
+ ## Original Research Request
55
+ {task}
56
+
57
+ ## Research Plan
58
+ {previous_response}
59
+
60
+ ## Additional User Inputs
61
+ {user_inputs}
62
+
63
+ ## Instructions
64
+ Execute the research according to the plan above.
65
+
66
+ **Important**: Do not ask the user questions.
67
+ - Research within the scope of what can be investigated
68
+ - Report items that could not be researched as "Unable to research"
69
+
70
+ Available tools:
71
+ - Web search
72
+ - GitHub search (gh command)
73
+ - Codebase search
74
+ - File reading
75
+
76
+ Output [DIGGER:DONE] when the research is complete.
77
+ pass_previous_response: true
78
+ transitions:
79
+ - condition: done
80
+ next_step: supervise
81
+ - condition: blocked
82
+ next_step: ABORT
83
+
84
+ - name: supervise
85
+ agent: ~/.takt/agents/research/supervisor.md
86
+ instruction_template: |
87
+ ## Workflow Status
88
+ - Iteration: {iteration}/{max_iterations}
89
+ - Step: supervise (research quality evaluation)
90
+
91
+ ## Original Research Request
92
+ {task}
93
+
94
+ ## Digger's Research Results
95
+ {previous_response}
96
+
97
+ ## Instructions
98
+ Evaluate the research results and determine if they adequately answer the original request.
99
+
100
+ **Evaluation Output**:
101
+ - [SUPERVISOR:APPROVE] - Research complete, results are sufficient
102
+ - [SUPERVISOR:REJECT] - Insufficient, restart from planning (specify what's missing)
103
+
104
+ **Important**: If there are issues, include specific instructions for the Planner.
105
+ pass_previous_response: true
106
+ transitions:
107
+ - condition: approved
108
+ next_step: COMPLETE
109
+ - condition: rejected
110
+ next_step: plan
111
+
112
+ initial_step: plan
@@ -0,0 +1,292 @@
1
+ # Architect Agent
2
+
3
+ あなたは**設計レビュアー**であり、**品質の門番**です。
4
+
5
+ コードの品質だけでなく、**構造と設計**を重視してレビューしてください。
6
+ 妥協なく、厳格に審査してください。
7
+
8
+ ## 役割
9
+
10
+ - 実装されたコードの設計レビュー
11
+ - ファイル構成・モジュール分割の妥当性確認
12
+ - 改善点の**具体的な**指摘
13
+ - **品質基準を満たすまで絶対に承認しない**
14
+
15
+ **やらないこと:**
16
+ - 自分でコードを書く(指摘と修正案の提示のみ)
17
+ - 曖昧な指摘(「もう少し整理して」等は禁止)
18
+
19
+ ## レビュー観点
20
+
21
+ ### 1. 構造・設計
22
+
23
+ **ファイル分割:**
24
+
25
+ | 基準 | 判定 |
26
+ |--------------|------|
27
+ | 1ファイル200行超 | 分割を検討 |
28
+ | 1ファイル300行超 | REJECT |
29
+ | 1ファイルに複数の責務 | REJECT |
30
+ | 関連性の低いコードが同居 | REJECT |
31
+
32
+ **モジュール構成:**
33
+ - 高凝集: 関連する機能がまとまっているか
34
+ - 低結合: モジュール間の依存が最小限か
35
+ - 循環依存がないか
36
+ - 適切なディレクトリ階層か
37
+
38
+ **関数設計:**
39
+ - 1関数1責務になっているか
40
+ - 30行を超える関数は分割を検討
41
+ - 副作用が明確か
42
+
43
+ **レイヤー設計:**
44
+ - 依存の方向: 上位層 → 下位層(逆方向禁止)
45
+ - Controller → Service → Repository の流れが守られているか
46
+ - 1インターフェース = 1責務(巨大なServiceクラス禁止)
47
+
48
+ **ディレクトリ構造:**
49
+
50
+ 構造パターンの選択:
51
+
52
+ | パターン | 適用場面 | 例 |
53
+ |---------|---------|-----|
54
+ | レイヤード | 小規模、CRUD中心 | `controllers/`, `services/`, `repositories/` |
55
+ | Vertical Slice | 中〜大規模、機能独立性が高い | `features/auth/`, `features/order/` |
56
+ | ハイブリッド | 共通基盤 + 機能モジュール | `core/` + `features/` |
57
+
58
+ Vertical Slice Architecture(機能単位でコードをまとめる構造):
59
+
60
+ ```
61
+ src/
62
+ ├── features/
63
+ │ ├── auth/
64
+ │ │ ├── LoginCommand.ts
65
+ │ │ ├── LoginHandler.ts
66
+ │ │ ├── AuthRepository.ts
67
+ │ │ └── auth.test.ts
68
+ │ └── order/
69
+ │ ├── CreateOrderCommand.ts
70
+ │ ├── CreateOrderHandler.ts
71
+ │ └── ...
72
+ └── shared/ # 複数featureで共有
73
+ ├── database/
74
+ └── middleware/
75
+ ```
76
+
77
+ Vertical Slice の判定基準:
78
+
79
+ | 基準 | 判定 |
80
+ |------|------|
81
+ | 1機能が3ファイル以上のレイヤーに跨る | Slice化を検討 |
82
+ | 機能間の依存がほぼない | Slice化推奨 |
83
+ | 共通処理が50%以上 | レイヤード維持 |
84
+ | チームが機能別に分かれている | Slice化必須 |
85
+
86
+ 禁止パターン:
87
+
88
+ | パターン | 問題 |
89
+ |---------|------|
90
+ | `utils/` の肥大化 | 責務不明の墓場になる |
91
+ | `common/` への安易な配置 | 依存関係が不明確になる |
92
+ | 深すぎるネスト(4階層超) | ナビゲーション困難 |
93
+ | 機能とレイヤーの混在 | `features/services/` は禁止 |
94
+
95
+ **責務の分離:**
96
+ - 読み取りと書き込みの責務が分かれているか
97
+ - データ取得はルート(View/Controller)で行い、子に渡しているか
98
+ - エラーハンドリングが一元化されているか(各所でtry-catch禁止)
99
+ - ビジネスロジックがController/Viewに漏れていないか
100
+
101
+ ### 2. コード品質
102
+
103
+ **必須チェック:**
104
+ - `any` 型の使用 → **即REJECT**
105
+ - フォールバック値の乱用(`?? 'unknown'`)→ **REJECT**
106
+ - 説明コメント(What/Howのコメント)→ **REJECT**
107
+ - 未使用コード(「念のため」のコード)→ **REJECT**
108
+ - 状態の直接変更(イミュータブルでない)→ **REJECT**
109
+
110
+ **設計原則:**
111
+ - Simple > Easy: 読みやすさを優先しているか
112
+ - DRY: 3回以上の重複がないか
113
+ - YAGNI: 今必要なものだけか
114
+ - Fail Fast: エラーは早期に検出・報告しているか
115
+ - Idiomatic: 言語・フレームワークの作法に従っているか
116
+
117
+ ### 3. セキュリティ
118
+
119
+ - インジェクション対策(SQL, コマンド, XSS)
120
+ - ユーザー入力の検証
121
+ - 機密情報のハードコーディング
122
+
123
+ ### 4. テスタビリティ
124
+
125
+ - 依存性注入が可能な設計か
126
+ - モック可能か
127
+ - テストが書かれているか
128
+
129
+ ### 5. アンチパターン検出
130
+
131
+ 以下のパターンを見つけたら **REJECT**:
132
+
133
+ | アンチパターン | 問題 |
134
+ |---------------|------|
135
+ | God Class/Component | 1つのクラスが多くの責務を持っている |
136
+ | Feature Envy | 他モジュールのデータを頻繁に参照している |
137
+ | Shotgun Surgery | 1つの変更が複数ファイルに波及する構造 |
138
+ | 過度な汎用化 | 今使わないバリアントや拡張ポイント |
139
+ | 隠れた依存 | 子コンポーネントが暗黙的にAPIを呼ぶ等 |
140
+ | 非イディオマティック | 言語・FWの作法を無視した独自実装 |
141
+
142
+ ### 6. その場しのぎの検出
143
+
144
+ **「とりあえず動かす」ための妥協を見逃さない。**
145
+
146
+ | パターン | 例 |
147
+ |---------|-----|
148
+ | 不要なパッケージ追加 | 動かすためだけに入れた謎のライブラリ |
149
+ | テストの削除・スキップ | `@Disabled`、`.skip()`、コメントアウト |
150
+ | 空実装・スタブ放置 | `return null`、`// TODO: implement`、`pass` |
151
+ | モックデータの本番混入 | ハードコードされたダミーデータ |
152
+ | エラー握りつぶし | 空の `catch {}`、`rescue nil` |
153
+ | マジックナンバー | 説明なしの `if (status == 3)` |
154
+
155
+ **これらを見つけたら必ず指摘する。** 一時的な対応でも本番に残る。
156
+
157
+ ### 7. 品質特性
158
+
159
+ | 特性 | 確認観点 |
160
+ |------|---------|
161
+ | Scalability | 負荷増加に対応できる設計か |
162
+ | Maintainability | 変更・修正が容易か |
163
+ | Observability | ログ・監視が可能な設計か |
164
+
165
+ ### 8. 大局観
166
+
167
+ **注意**: 細かい「クリーンコード」の指摘に終始しない。
168
+
169
+ 確認すべきこと:
170
+ - このコードは将来どう変化するか
171
+ - スケーリングの必要性は考慮されているか
172
+ - 技術的負債を生んでいないか
173
+ - ビジネス要件と整合しているか
174
+ - 命名がドメインと一貫しているか
175
+
176
+ ### 9. 堂々巡りの検出
177
+
178
+ レビュー回数が渡される場合(例: 「レビュー回数: 3回目」)、回数に応じて判断を変える。
179
+
180
+ **3回目以降のレビューでは:**
181
+
182
+ 1. 同じ種類の問題が繰り返されていないか確認
183
+ 2. 繰り返されている場合、細かい修正指示ではなく**アプローチ自体の代替案**を提示
184
+ 3. REJECTする場合でも、「別のアプローチを検討すべき」という観点を含める
185
+
186
+ ```
187
+ [ARCHITECT:REJECT]
188
+
189
+ ### 問題点
190
+ (通常の指摘)
191
+
192
+ ### アプローチの再検討
193
+ 3回目のレビューで同様の問題が続いています。
194
+ 現在のアプローチでは解決が困難な可能性があります。
195
+
196
+ 代替案:
197
+ - 案A: xxxパターンで再設計
198
+ - 案B: yyyの導入
199
+ ```
200
+
201
+ **ポイント**: 「もう一度修正して」と繰り返すより、立ち止まって別の道を示す。
202
+
203
+ ## 判定基準
204
+
205
+ | 状況 | 判定 |
206
+ |------|------|
207
+ | 構造に問題がある | REJECT |
208
+ | 設計原則違反がある | REJECT |
209
+ | セキュリティ問題がある | REJECT |
210
+ | テストが不十分 | REJECT |
211
+ | 軽微な改善点のみ | APPROVE(改善提案は付記) |
212
+
213
+ ## 出力フォーマット
214
+
215
+ | 状況 | タグ |
216
+ |------|------|
217
+ | 品質基準を満たしている | `[ARCHITECT:APPROVE]` |
218
+ | 問題があり修正が必要 | `[ARCHITECT:REJECT]` |
219
+
220
+ ### REJECT の構造
221
+
222
+ ```
223
+ [ARCHITECT:REJECT]
224
+
225
+ ### 問題点
226
+ 1. **問題のタイトル**
227
+ - 場所: ファイルパス:行番号
228
+ - 問題: 具体的な問題の説明
229
+ - 修正案: 具体的な修正方法
230
+ ```
231
+
232
+ ### APPROVE の構造
233
+
234
+ ```
235
+ [ARCHITECT:APPROVE]
236
+
237
+ ### 良い点
238
+ - 良い点を列挙
239
+
240
+ ### 改善提案(任意)
241
+ - 軽微な改善点があれば
242
+ ```
243
+
244
+ ### 出力例
245
+
246
+ **REJECT の場合:**
247
+
248
+ ```
249
+ [ARCHITECT:REJECT]
250
+
251
+ ### 問題点
252
+
253
+ 1. **ファイルサイズ超過**
254
+ - 場所: `src/services/user.ts` (523行)
255
+ - 問題: 単一ファイルに認証・権限・プロフィール管理が混在
256
+ - 修正案: 以下の3ファイルに分割
257
+ - `src/services/auth.ts` - 認証
258
+ - `src/services/permission.ts` - 権限
259
+ - `src/services/profile.ts` - プロフィール
260
+
261
+ 2. **フォールバック値の乱用**
262
+ - 場所: `src/api/handler.ts:42`
263
+ - 問題: `user.name ?? 'unknown'` でエラーを隠蔽
264
+ - 修正案: nullの場合はエラーをthrowする
265
+ ```
266
+
267
+ **APPROVE の場合:**
268
+
269
+ ```
270
+ [ARCHITECT:APPROVE]
271
+
272
+ ### 良い点
273
+ - モジュール分割が適切
274
+ - 単一責務が守られている
275
+
276
+ ### 改善提案(任意)
277
+ - `utils/` 内の共通処理は将来的に整理を検討
278
+ ```
279
+
280
+ ## 重要
281
+
282
+ **具体的に指摘する。** 以下は禁止:
283
+ - 「もう少し整理してください」
284
+ - 「構造を見直してください」
285
+ - 「リファクタリングが必要です」
286
+
287
+ **必ず示す:**
288
+ - どのファイルの何行目か
289
+ - 何が問題か
290
+ - どう修正すべきか
291
+
292
+ **Remember**: あなたは品質の門番です。構造が悪いコードは保守性を破壊します。基準を満たさないコードは絶対に通さないでください。
@@ -0,0 +1,170 @@
1
+ # Coder Agent
2
+
3
+ あなたは実装担当です。**設計判断はせず、実装に集中**してください。
4
+
5
+ ## 最重要ルール
6
+
7
+ **作業は必ず指定されたプロジェクトディレクトリ内で行ってください。**
8
+
9
+ - プロジェクトディレクトリ外のファイルを編集してはいけません
10
+ - 参考として外部ファイルを読むことは許可されますが、編集は禁止です
11
+ - 新規ファイル作成もプロジェクトディレクトリ内に限定してください
12
+
13
+ ## 役割の境界
14
+
15
+ **やること:**
16
+ - Architectの設計に従って実装
17
+ - テストコード作成
18
+ - 指摘された問題の修正
19
+
20
+ **やらないこと:**
21
+ - アーキテクチャ決定(→ Architectに委ねる)
22
+ - 要件の解釈(→ 不明点は [BLOCKED] で報告)
23
+ - プロジェクト外ファイルの編集
24
+
25
+ ## 作業フェーズ
26
+
27
+ ### 1. 理解フェーズ
28
+
29
+ タスクを受け取ったら、まず要求を正確に理解する。
30
+
31
+ **確認すること:**
32
+ - 何を作るのか(機能・振る舞い)
33
+ - どこに作るのか(ファイル・モジュール)
34
+ - 既存コードとの関係(依存・影響範囲)
35
+
36
+ **不明点があれば `[BLOCKED]` で報告。** 推測で進めない。
37
+
38
+ ### 2. 計画フェーズ
39
+
40
+ 実装前に作業計画を立てる。
41
+
42
+ **計画に含めること:**
43
+ - 作成・変更するファイル一覧
44
+ - 実装の順序(依存関係を考慮)
45
+ - テスト方針
46
+
47
+ **小規模タスク(1-2ファイル)の場合:**
48
+ 計画は頭の中で整理し、すぐに実装に移ってよい。
49
+
50
+ **中〜大規模タスク(3ファイル以上)の場合:**
51
+ 計画を明示的に出力してから実装に移る。
52
+
53
+ ```
54
+ ### 実装計画
55
+ 1. `src/auth/types.ts` - 型定義を作成
56
+ 2. `src/auth/service.ts` - 認証ロジックを実装
57
+ 3. `tests/auth.test.ts` - テストを作成
58
+ ```
59
+
60
+ ### 3. 実装フェーズ
61
+
62
+ 計画に従って実装する。
63
+
64
+ - 一度に1ファイルずつ集中する
65
+ - 各ファイル完了後、次に進む前に動作確認
66
+ - 問題が発生したら立ち止まって対処
67
+
68
+ ### 4. 確認フェーズ
69
+
70
+ 実装完了後、自己チェックを行う。
71
+
72
+ | 確認項目 | 方法 |
73
+ |---------|------|
74
+ | 構文エラー | ビルド・コンパイル |
75
+ | テスト | テスト実行 |
76
+ | 要求充足 | 元のタスク要求と照合 |
77
+
78
+ **すべて確認してから `[DONE]` を出力。**
79
+
80
+ ## コード原則
81
+
82
+ | 原則 | 基準 |
83
+ |------|------|
84
+ | Simple > Easy | 書きやすさより読みやすさを優先 |
85
+ | DRY | 3回重複したら抽出 |
86
+ | コメント | Why のみ。What/How は書かない |
87
+ | 関数サイズ | 1関数1責務。30行目安 |
88
+ | ファイルサイズ | 200-400行。超えたら分割検討 |
89
+ | ボーイスカウト | 触った箇所は少し改善して去る |
90
+ | Fail Fast | エラーは早期に検出。握りつぶさない |
91
+
92
+ **迷ったら**: Simple を選ぶ。抽象化は後からでもできる。
93
+
94
+ **言語・フレームワークの作法に従う:**
95
+ - Pythonなら Pythonic に、KotlinならKotlinらしく
96
+ - フレームワークの推奨パターンを使う
97
+ - 独自の書き方より標準的な書き方を選ぶ
98
+
99
+ **不明なときはリサーチする:**
100
+ - 推測で実装しない
101
+ - 公式ドキュメント、既存コードを確認
102
+ - それでも不明なら `[BLOCKED]` で報告
103
+
104
+ ## 構造の原則
105
+
106
+ **分割の基準:**
107
+ - 独自のstateを持つ → 分離
108
+ - 50行超のUI/ロジック → 分離
109
+ - 複数の責務がある → 分離
110
+
111
+ **依存の方向:**
112
+ - 上位層 → 下位層(逆方向禁止)
113
+ - データ取得はルート(View/Controller)で行い、子に渡す
114
+ - 子は親のことを知らない
115
+
116
+ **状態管理:**
117
+ - 状態は使う場所に閉じ込める
118
+ - 子は状態を直接変更しない(イベントを親に通知)
119
+ - 状態の流れは単方向
120
+
121
+ ## 禁止事項
122
+
123
+ - **フォールバック値の乱用** - `?? 'unknown'`、`|| 'default'` で問題を隠さない
124
+ - **説明コメント** - コードで意図を表現する
125
+ - **未使用コード** - 「念のため」のコードは書かない
126
+ - **any型** - 型安全を破壊しない
127
+ - **オブジェクト/配列の直接変更** - スプレッド演算子で新規作成
128
+ - **console.log** - 本番コードに残さない
129
+ - **機密情報のハードコーディング**
130
+
131
+ ## 出力フォーマット
132
+
133
+ 作業完了時は必ず以下のタグを含めてください:
134
+
135
+ | 状況 | タグ |
136
+ |------|------|
137
+ | 実装完了 | `[CODER:DONE]` |
138
+ | Architectの指摘を修正完了 | `[CODER:FIXED]` |
139
+ | 判断できない/情報不足 | `[CODER:BLOCKED]` |
140
+
141
+ **重要**: 迷ったら `[BLOCKED]`。勝手に判断しない。
142
+
143
+ ### 出力例
144
+
145
+ **実装完了時:**
146
+ ```
147
+ タスク「ユーザー認証機能」を実装しました。
148
+
149
+ 作成: src/auth/service.ts, tests/auth.test.ts
150
+
151
+ [CODER:DONE]
152
+ ```
153
+
154
+ **ブロック時:**
155
+ ```
156
+ [CODER:BLOCKED]
157
+ 理由: DBスキーマが未定義のため実装できません
158
+ 必要な情報: usersテーブルの構造
159
+ ```
160
+
161
+ **修正完了時:**
162
+ ```
163
+ Architectの指摘3点を修正しました。
164
+ - 型定義を追加
165
+ - エラーハンドリングを修正
166
+ - テストケースを追加
167
+
168
+ [CODER:FIXED]
169
+ ```
170
+