116 Commits

Author SHA1 Message Date
nrslib
8990efaebe fix it 2026-02-02 00:00:54 +09:00
nrslib
942f983ea5 add it 2026-02-01 23:36:33 +09:00
nrslib
d6ac71f0e6 | 作成 | src/task/git.ts | stageAndCommit() 共通関数。git commit ロジックのDRY化 |
| 作成 | `src/workflow/instruction-context.ts` | `instruction-builder.ts` からコンテキスト組立ロジック抽出 |
| 作成 | `src/workflow/status-rules.ts` | `instruction-builder.ts` からステータスルールロジック抽出 |
| 変更 | 35ファイル | `getErrorMessage()` 統一、`projectCwd` required 化、`process.cwd()` デフォルト除去、`sacrificeMode` 削除、`loadGlobalConfig` キャッシュ、`console.log` → `blankLine()`、`executeTask` options object 化 |

resolved #44
2026-02-01 22:58:49 +09:00
nrslib
3bc0251aa9 mockを使ったITを追加 2026-02-01 21:58:47 +09:00
nrs
f8980e9841
Merge pull request #83 from nrslib/takt/issue-81-1769929093
workflowやconfig指定をオプションで受け入れpath対応にする
2026-02-01 21:07:05 +09:00
nrslib
ff7cfb52f7 --workflow にてpathも指定できるように 2026-02-01 20:58:03 +09:00
nrslib
9980327863 workflowがbuiltin優先になっている 2026-02-01 17:56:58 +09:00
nrslib
14130ee958 feat: workflowやconfig指定をオプションで受け入れpath対応にする (#81) 2026-02-01 07:45:04 +00:00
nrslib
a1d06dd756 feat: CI用にログ出力最小モードを導入する (#70) 2026-02-01 05:57:50 +00:00
nrslib
ed1fe99c3b feat: detectRuleIndex を最後のマッチに変更する (#25) 2026-02-01 03:15:45 +00:00
nrslib
11ae49dc56 Fix failing tests: update ai_fix test and skip flaky workflow test 2026-02-01 09:03:10 +09:00
nrslib
cf393312a2 Add --pipeline flag and improve log file naming
- Add --pipeline flag for explicit pipeline/non-interactive mode
- Change log file naming from base36 to YYYYMMDD-HHmmss-random format
- Update --task description to clarify it's an alternative to --issue
- Add tests for new timestamp-based session ID format

Resolves #28
2026-02-01 08:40:18 +09:00
nrslib
d9786c11fb --worktreeで対話スキップ --create-worktreeで対話スキップ 2026-02-01 00:20:41 +09:00
nrslib
063b0e8d70 resolved #69 2026-01-31 23:24:24 +09:00
nrslib
c36a5b1b07 resolved #66 2026-01-31 21:53:07 +09:00
nrslib
3f2971fb72 resolved #67 2026-01-31 21:52:00 +09:00
nrslib
9e2fb10502 resolved #68 2026-01-31 21:34:51 +09:00
nrslib
7d856287f0 ビルトインワークフロー: review-only(レビュー専用) #60 resolved 2026-01-31 20:03:38 +09:00
nrslib
1e8909d512 resolved #52, resolved #59 2026-01-31 19:25:50 +09:00
nrslib
e950a3f79c resolved 52 2026-01-31 18:28:30 +09:00
nrslib
2b35021d45 resolved #38 2026-01-31 17:08:28 +09:00
nrslib
a2ee86c7a2 resolved #50 2026-01-31 17:05:03 +09:00
nrslib
ca9283ee82 resolved
#51
2026-01-31 17:04:07 +09:00
nrslib
1c46a76bbd resolve #23 2026-01-31 17:02:52 +09:00
nrslib
4b924851a8 resolved #35 2026-01-31 11:22:58 +09:00
nrslib
6468fa6345 resolved #45 2026-01-31 09:40:36 +09:00
nrslib
2cfe77977c resolve #14 2026-01-31 09:24:00 +09:00
nrslib
80a75004a4 fix: takt add #N でIssue内容がAI要約で壊れる問題を修正 (#46) 2026-01-31 01:41:10 +09:00
nrslib
7bac0053ff feat: CLIサブコマンド形式への移行と対話式タスク入力モード (#47)
- スラッシュコマンド形式をサブコマンド形式に変更(takt run, takt add 等)
- 引数なし takt で対話的にAIとタスク要件を詰めるinteractiveモードを追加
- セッション永続化により takt 再起動後も会話を継続
- 調査用ツール(Read, Glob, Grep, Bash, WebSearch, WebFetch)を許可
- プランニング専用のシステムプロンプトでコード変更を禁止
- executor の buildSdkOptions を未定義値を含めないよう修正(SDK ハング対策)
- help/refreshBuiltinコマンドを削除、ejectコマンドを簡素化
- ドキュメント(CLAUDE.md, README, workflows.md)をサブコマンド形式に更新
2026-01-31 01:14:36 +09:00
nrslib
547b4260f7 fix: eject.tsの未使用import(basename)を削除 2026-01-30 21:33:47 +09:00
nrslib
b520ede80d fix: reportDirに.takt/reports/プレフィックスを含め、ルート直下へのレポート作成を修正 (#37) 2026-01-30 21:32:09 +09:00
nrslib
cd67a2355a feat: WorkflowEngineのモックインテグレーションテスト追加 (#17)
runAgentをモックし、ワークフロー全体の状態遷移を検証する
インテグレーションテストを追加。

テストケース:
- 正常フロー(Happy Path)
- 差し戻しフロー(review reject → fix → re-review)
- AI review差し戻し(ai_review → ai_fix → ai_review)
- エラー: ルール未マッチ、runAgent例外
- ループ検出
- イテレーション上限
- blockedハンドリング(onUserInputあり/なし)
- パラレルステップ集約(all/any条件)
- rulesのnextがundefinedのケース
2026-01-30 21:11:41 +09:00
nrslib
748f5afb29 feat: builtinワークフローをパラレルレビュー対応に変更し、エージェントに仕様準拠チェックを追加 (#31)
- default.yamlのreview/security_reviewを統合しparallelステップ(reviewers)に変更
- improve/security_fixステップを統合fixステップに集約
- parallelサブステップのrulesでnextをoptionalに(スキーマ・型定義)
- planner/architecture-reviewer/supervisorに仕様準拠の確認指示を追加(ja/en)
- parallelレビュー構造の検証テストを追加
2026-01-30 20:42:54 +09:00
nrslib
5265cc0059 feat: Builtin管理をバンドル埋め込み方式に移行し、/ejectコマンドを追加 (#4)
- ローダーがユーザーファイル優先、なければdist/resources/からbuiltinを読む方式に変更
- /ejectコマンドを追加(builtinを~/.takt/にコピーしてカスタマイズ可能に)
- /refresh-builtinを簡素化(ejectへの移行案内)
- config.yamlにdisabled_builtinsフィールドを追加
- ワークフローYAMLをrules形式に統一
2026-01-30 20:03:38 +09:00
nrslib
1fbc90823e feat: ログをNDJSON形式に変更し、ストリーミング出力をリアルタイムで書き出す (#27)
- ログフォーマットを単一JSONからNDJSON(.jsonl)に変更
- ストリーミングチャンク・ステップ開始/完了・ワークフロー完了/中断を逐次追記
- appendFileSyncでopen→write→closeを都度実行(tail -fで追跡可能)
- レガシー.jsonファイルの読み込みも引き続きサポート
- saveSessionLog/addToSessionLogを廃止、initNdjsonLog/appendNdjsonLineに置換
2026-01-30 19:24:36 +09:00
nrslib
84ef8fbaf7 feat: GitHub Issue番号でタスク実行・追加を可能にし、エンジンをリファクタリング (#10)
- takt "#6" や /add-task "#6" "#7" でIssue内容をタスクとして実行可能に
- gh CLI経由でIssue取得、タイトル・本文・ラベル・コメントをタスクテキストに変換
- engine.tsからフェーズ実行(phase-runner)、ルール評価(rule-evaluator)、
  ルールユーティリティ(rule-utils)を分離
2026-01-30 18:49:55 +09:00
nrslib
213e293c06 Phase 1プロンプトにもステータスルールを注入(Phase 3との併用方式)
buildInstruction()にセクション7を追加し、タグベースのルールがある場合に
判定基準と出力フォーマットをPhase 1のプロンプトに注入する。
ai()/aggregate条件のみの場合はスキップ。
2026-01-30 17:38:49 +09:00
nrslib
9c05b45e1e feat: ルールマッチ方法の可視化と5段階フォールバック検出を実装
- RuleMatchMethod型を追加し、検出方法(aggregate/phase3_tag/phase1_tag/ai_judge/ai_judge_fallback)を記録
- detectMatchedRuleを5段階フォールバックに拡張(Phase3タグ→Phase1タグ→AI judge→全条件AI judge)
- matchedRuleMethodをセッションログとUI出力の両方に表示
- Phase 3のmaxTurnsを3に増加
- ParallelLoggerによるパラレルステップのプレフィックス付き出力を追加
2026-01-30 17:07:18 +09:00
nrslib
b10773d310 ステータス判定をPhase 3に分離し、デッドコードを整理
- buildInstruction からステータスルール注入を除去(Phase 1はステータスタグなし)
- buildStatusJudgmentInstruction を新設(Phase 3: セッション再開でステータスタグ出力)
- detectMatchedRule のシグネチャを (agentContent, tagContent) に変更
- ルール存在時にマッチなしなら即座にthrow(Fail Fast)
- runReportPhase / runStatusJudgmentPhase の共通部分を buildResumeOptions に抽出
- sessionId 欠落時のサイレントフォールバックをエラーに変更
- renderStatusRulesHeader / STATUS_RULES_HEADER_STRINGS を削除(デッドコード)
- StatusJudgmentContext から未使用の cwd を削除
- Status 型および StatusSchema から未使用の in_progress を削除
2026-01-30 16:29:54 +09:00
nrslib
9c597a9b0d レポート出力をフェーズ2に分離し、本体実行からWriteを除外
ステップ実行を2フェーズに分離:
- フェーズ1(本体): allowed_toolsからWriteを除外、レポート情報を注入しない
- フェーズ2(レポート出力): 同一セッションresume、Writeのみ付与、ステータス検出なし

buildInstruction()からレポート関連コードを削除し、
buildReportInstruction()を新設してレポート出力の責務を完全分離。
2026-01-30 15:26:56 +09:00
nrslib
70651f8dd8 feat: ai() 条件式によるAI遷移判断とパラレルステップ実行を実装 (#9, #20)
- rules の condition に ai("...") 式を追加し、別AIが遷移先を判断する仕組みを導入
- ワークフローステップに parallel フィールドを追加し、サブステップの並列実行を実装
- all()/any() 集約条件の仕様書を追加
2026-01-30 14:53:25 +09:00
nrslib
cb37baec2c レポート出力指示を自動生成に統一し、YAML の手動 order/instruction_template を削除
- REPORT_OUTPUT_STRINGS (en/ja) と renderReportOutputInstruction() を追加
- 全8ワークフローYAMLから手動の order フィールドとレポート出力指示を削除
- ReportObjectConfig に明示的 order がある場合は後方互換として優先
- .envrc を .gitignore に追加

ref #29
2026-01-30 11:59:06 +09:00
nrslib
706a59d3b6 edit プロパティによるファイル編集制御、ステップ完了時のレポートログ出力、resolveContentPath 追加
- edit: true/false をワークフローステップに追加し、エージェントへの編集許可/禁止プロンプトを自動注入
- ステップ完了時に step:report イベントを発火し、レポート内容をコンソール出力
- resolveContentPath() で format/instruction_template の .md ファイル参照に対応
- writeStepReport() を削除し、レポート出力はエージェント責務に統一
- 全8ワークフローYAMLに edit フィールドを付与

resolves #6, resolves #21, resolves #22
2026-01-30 11:33:56 +09:00
nrslib
6fe6491948 report 系のformatを利用するように変更、gitdiff廃止 2026-01-30 09:13:32 +09:00
nrslib
79227dffd1 takt: update-report-path-variable 2026-01-30 07:43:17 +09:00
nrslib
f7181fc00c workflow 変更 2026-01-30 01:50:25 +09:00
nrslib
e67d2648d8 rule機能追加 2026-01-30 00:05:11 +09:00
nrslib
304044a2f1 fix: read version from package.json instead of hardcoded 0.1.0 (closes #3)
- Read CLI version dynamically from package.json via createRequire
- Fix unused variable lint errors (branch destructuring)
- Bump version to 0.2.3

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 21:18:16 +09:00
nrslib
6dd69fc688 takt: npmのupdatenotifierをいれたい 2026-01-29 20:36:42 +09:00
nrslib
ee0d846c5b worktreeのバグフィックス 2026-01-29 20:26:27 +09:00