nrs
16596eff09
takt: refactor-status-handling ( #477 )
2026-03-06 01:40:25 +09:00
nrs
bc5e1fd860
takt: fix-phase3-fallback-bypass ( #474 )
2026-03-06 01:30:33 +09:00
nrslib
a8223d231d
refactor: config 3層モデル整理 + supervisor ペルソナのファセット分離是正
...
Config:
- PersistedGlobalConfig → GlobalConfig にリネーム、互換エイリアス削除
- persisted-global-config.ts → config-types.ts にリネーム
- ProjectConfig → GlobalConfig extends Omit<ProjectConfig, ...> の継承構造に整理
- verbose/logLevel/log_level を削除(logging セクションに統一)
- migration 機構(migratedProjectLocalKeys 等)を削除
Supervisor ペルソナ:
- 後方互換コードの検出・その場しのぎの検出・ボーイスカウトルールを除去(review.md ポリシー / architecture.md ナレッジと重複)
- ピース全体の見直しを supervise.md インストラクションに移動
takt-default-team-leader:
- loop_monitor のインライン instruction_template を既存ファイル参照に変更
- implement の「判断できない」ルールを ai_review → plan に修正
2026-03-06 01:29:46 +09:00
nrslib
ebbd1a67a9
fix: ピース再利用確認を task.data.piece から取得 & config テンプレート拡充
...
- retryFailedTask / instructBranch でピース名の取得元を
runInfo?.piece から task.data?.piece に変更
(worktree 内に .takt/runs/ が存在しないため runInfo は常に null だった)
- ~/.takt/config.yaml テンプレートに不足していた設定項目を追加
(provider, model, concurrency, analytics, pipeline, persona_providers 等)
2026-03-06 00:37:54 +09:00
nrs
a69e9f4fb3
takt: add-persona-quality-gates ( #472 )
2026-03-05 23:32:32 +09:00
nrs
76cfd771f8
takt: implement-usage-event-logging ( #470 )
2026-03-05 11:27:59 +09:00
nrs
2f268f6d43
[ #320 ] move-allowed-tools-claude ( #469 )
...
* takt: move-allowed-tools-claude
* fix: E2Eフィクスチャの allowed_tools を provider_options.claude に移行
PR #469 で allowed_tools がムーブメント直下から provider_options.claude.allowed_tools に
移動されたが、E2Eフィクスチャとインラインピース定義が旧形式のままだった。
2026-03-05 11:27:48 +09:00
nrs
3649ce40f9
takt: add-piece-reuse-confirm ( #468 )
2026-03-04 23:07:47 +09:00
nrs
8403a7c892
takt: add-trace-report-generation ( #467 )
2026-03-04 23:07:36 +09:00
nrslib
1cfae9f53b
refactor: deprecated config マイグレーション処理を削除
...
log_level / observability の後方互換マイグレーションを完全削除。
logging キーに一本化し、レガシー変換コード・テストを除去。
2026-03-04 21:05:14 +09:00
nrs
69dd871404
refactor: observability を logging に再編成し設定構造を体系化 ( #466 )
...
* takt: refactor-logging-config
* fix: resolve merge conflicts
* chore: trigger CI
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-04 20:27:42 +09:00
jake
289a0fb912
.takt/config.yaml(プロジェクト設定)に runtime.prepare を記述するとエラーになる ( #464 )
...
* fix: add missing runtime field to ProjectConfigSchema and unify normalizeRuntime
ProjectConfigSchema.strict() rejected the runtime key in .takt/config.yaml
because the field was never added to the project-level Zod schema. The global
schema and piece-level schema already had it, so only project-level
runtime.prepare was broken ("Unrecognized key: runtime").
- Add runtime to ProjectConfigSchema and ProjectLocalConfig type
- Handle runtime in loadProjectConfig/saveProjectConfig
- Extract normalizeRuntime() into configNormalizers.ts as shared function
- Replace duplicated normalization in globalConfigCore.ts and pieceParser.ts
- Add 9 round-trip tests for project-level runtime.prepare
* fix: remove unnecessary comments from configNormalizers.ts
* fix: replace removed piece field with verbose in runtime test
The piece field was removed from ProjectConfigSchema in PR #465 .
Update the test to use verbose instead.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 20:13:44 +09:00
nrs
4f02c20c1d
Merge pull request #465 from nrslib/takt/420/remove-default-piece-switch
...
feat: デフォルトピースの概念と takt switch コマンドを削除
2026-03-04 18:02:28 +09:00
nrslib
9fc8ab73fd
リトライ時でタスクにつめるようにする
2026-03-04 16:20:37 +09:00
nrs
8ffe0592ef
Merge pull request #460 from nrslib/takt/452/refactor-config-structure
...
[#452 ] refactor-config-structure
2026-03-04 15:14:33 +09:00
nrslib
7c1bc44596
feat: PR作成失敗時のタスクステータスを failed から pr_failed に分離
...
コード実行は成功したが PR 作成のみ失敗した場合、タスク全体を failed
扱いにせず pr_failed ステータスで記録する。takt list では [pr-failed]
として表示し、completed と同じ diff/merge 操作が可能。
2026-03-04 14:53:12 +09:00
nrslib
204d84e345
takt: refactor-config-structure
2026-03-04 14:16:12 +09:00
nrslib
4e89fe1c23
feat: reviewers↔fix ループ収束を支援するレポート履歴・ループ監視・参照方針の整備
...
- phase-runner: レポートを上書きせずタイムスタンプ付きで同ディレクトリに保存し、fix が過去指摘の傾向を追跡できるよう改善
- output-contracts: persists/reopened/family_tag フィールドを追加してレビュー指摘の継続性を明示
- pieces: 全ビルトインピースに reviewers↔fix の loop_monitors を追加し、発散ループを自動検知
- fix.md: 過去レポートの参照方法を「Glob で {レポート名}.* を検索、最大2件読む」と具体化
- loop-monitor-reviewers-fix.md: ループモニタ判定用の共通インストラクションを新規追加
2026-03-04 11:32:19 +09:00
nrslib
6a3c64a033
fix: stop iteration limit prompt and persist exceeded in interactive run
2026-03-04 09:39:30 +09:00
nrslib
8dcb23b147
fix: export-cc で facets/ のディレクトリ構造を保持するよう修正
...
ファセットを ~/.claude/skills/takt/personas/ 等に展開していたが、
ビルトインのピースYAMLで ../facets/personas/ という相対パスを
使用しているため、facets/ ディレクトリを維持する必要があった。
deploySkill.ts、SKILL.md、engine.md のパス例も合わせて修正。
2026-03-04 01:30:11 +09:00
nrs
8430948475
takt: unify-provider-config ( #457 )
2026-03-04 00:34:07 +09:00
nrs
290d085f5e
takt: implement-task-base-branch ( #455 )
2026-03-03 19:37:07 +09:00
あいやま EIichi Yamazaki
ed16c05160
fix: グローバル設定のpieceが解決チェーンで無視されるバグを修正 ( #458 )
2026-03-03 19:36:34 +09:00
nrslib
d2b48fdd92
fix: resolve provider-first permission mode and add codex EPERM e2e
2026-03-03 17:15:54 +09:00
nrs
f838a0e656
takt: github-issue-382-feat-purojeku ( #384 )
...
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-03 00:10:02 +09:00
nrs
4a92ba2012
[ #366 ] implement-exceeded-requeue ( #374 )
...
* takt: implement-exceeded-requeue
* takt: implement-exceeded-requeue
* takt: implement-exceeded-requeue
* ci: trigger CI
* fix: 未使用インポート削除と --create-worktree e2e テスト修正
InteractiveModeAction の不要な import を削除して lint エラーを解消する。
--create-worktree オプション削除に合わせ e2e の期待メッセージを更新する。
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
2026-03-02 23:30:53 +09:00
nrs
29f8ca4bdc
takt: fix-copilot-review-findings ( #434 )
2026-03-02 23:04:24 +09:00
nrslib
c843858f2e
feat: --pr インタラクティブモードで create_issue 除外・save_task 時の PR ブランチ自動設定
...
- --pr 指定時のインタラクティブモードで create_issue を選択肢から除外
- execute アクション時に PR ブランチを fetch + checkout してから実行
- save_task アクション時に worktree/branch/autoPr を自動設定しプロンプトをスキップ
- saveTaskFromInteractive に presetSettings オプションを追加
- interactiveMode に InteractiveModeOptions(excludeActions)を追加
- checkoutBranch() を git.ts に追加し steps.ts の重複コードを DRY 化
2026-03-02 23:01:24 +09:00
nrslib
8edf8b02d8
fix: レビューコメントがない PR でも --pr が機能するよう修正
2026-03-02 22:02:55 +09:00
nrslib
47612d9dcc
refactor: agent-usecases / schema-loader の移動と pieceExecution の責務分割
...
- agent-usecases.ts を core/piece/ → agents/ へ移動
- schema-loader.ts を core/piece/ → infra/resources/ へ移動
- interactive-summary-types.ts を分離、shared/types/ ディレクトリを追加
- pieceExecution.ts を abortHandler / analyticsEmitter / iterationLimitHandler / outputFns / runMeta / sessionLogger に分割
- buildMergeFn を async → sync に変更(custom merge の file 戦略を削除)
- cleanupOrphanedClone にパストラバーサル保護を追加
- review-fix / frontend-review-fix ピースの IT テストを追加
2026-03-02 21:20:50 +09:00
nrslib
d3ac5cc17c
fix: --auto-pr/--draft をパイプラインモード専用に制限
...
インタラクティブモードでの PR 自動作成プロンプト(resolveAutoPr / resolveDraftPr)を削除し、
--auto-pr / --draft はパイプラインモードでのみ有効になるよう制限する。
SelectAndExecuteOptions から repo / branch / issues フィールドも削除。
2026-03-02 17:37:46 +09:00
Takashi Morikubo
50935a1244
Remove worktree prompt from execute action ( #414 )
...
* fix: remove execute worktree prompt and deprecate create-worktree option
* test(e2e): align specs with removed --create-worktree
* fix: remove execute worktree leftovers and align docs/tests
---------
Co-authored-by: Takashi Morikubo <azurite0107@gmail.com>
2026-03-02 16:12:18 +09:00
nrslib
bddb66f85d
fix: avoid leading-boundary timed flush fragmentation
2026-03-02 14:18:28 +09:00
nrslib
532b1961a7
refactor: expert → dual リネーム、未使用ピース削除、default 統合
...
- expert/expert-mini/expert-cqrs/expert-cqrs-mini を dual 系にリネーム
(「フルスタック」→「フロントエンド+バックエンド」に説明も修正)
- expert-supervisor ペルソナを dual-supervisor にリネーム
- passthrough, structural-reform ピースを削除
- default-mini, default-test-first-mini を default に統合
- coding-pitfalls ナレッジの主要項目を coding ポリシーに移動し削除
- implement/plan インストラクションにセルフチェック・コーダー指針を追加
- builtin カタログに不足していた terraform, takt-default 系を追加
- deep-research をカテゴリに追加
2026-03-02 13:15:51 +09:00
nrs
8f0f546928
[ #426 ] add-pr-review-task ( #427 )
...
* takt: add-pr-review-task
* fix: add コマンドの DRY 違反を修正
if/else で addTask を引数の有無のみ変えて呼び分けていた
冗長な分岐を三項演算子で統一。テストのアサーションも更新。
* fix: レビュー Warning 4件を修正
- addTask.test.ts: 冗長な Ref エイリアスを削除し直接参照に統一
- addTask.test.ts: mockRejectedValue を mockImplementation(throw) に変更
(fetchPrReviewComments は同期メソッドのため)
- index.ts: addTask の JSDoc Flow コメントを復元(PR フロー追加)
- issueTask.ts: extractTitle / createIssueFromTask の JSDoc を移植
2026-02-28 21:56:00 +09:00
Tomohisa Takaoka
17232f9940
feat: add GitHub Copilot CLI as a new provider ( #425 )
...
* feat: add GitHub Copilot CLI as a new provider
Add support for GitHub Copilot CLI (@github/copilot) as a takt provider,
enabling the 'copilot' command to be used for AI-driven task execution.
New files:
- src/infra/copilot/client.ts: CLI client with streaming, session ID
extraction via --share, and permission mode mapping
- src/infra/copilot/types.ts: CopilotCallOptions type definitions
- src/infra/copilot/index.ts: barrel exports
- src/infra/providers/copilot.ts: CopilotProvider implementing Provider
- src/__tests__/copilot-client.test.ts: 20 unit tests for client
- src/__tests__/copilot-provider.test.ts: 8 unit tests for provider
Key features:
- Spawns 'copilot -p' in non-interactive mode with --silent --no-color
- Permission modes: full (--yolo), edit (--allow-all-tools --no-ask-user),
readonly (no permission flags)
- Session ID extraction from --share transcript files
- Real-time stdout streaming via onStream callbacks
- Configurable via COPILOT_CLI_PATH and COPILOT_GITHUB_TOKEN env vars
* fix: remove unused COPILOT_DEFAULT_MAX_AUTOPILOT_CONTINUES constant
* fix: address review feedback for copilot provider
- Remove excess maxAutopilotContinues property from test (#1 High)
- Extract cleanupTmpDir() helper to eliminate DRY violation (#2 Medium)
- Deduplicate chunk string conversion in stdout handler (#3 Medium)
- Remove 5 what/how comments that restate code (#4 Medium)
- Log readFile failure instead of silently swallowing (#5 Medium)
- Add credential scrubbing (ghp_/ghs_/gho_/github_pat_) for stderr (#6 Medium)
- Add buffer overflow tests for stdout and stderr (#7 Medium)
- Add pre-aborted AbortSignal test (#8 Low)
- Add mkdtemp failure fallback test (#9 Low)
- Add rm cleanup verification to fallback test (#10 Low)
- Log mkdtemp failure with debug level (#11 Persist)
- Add createLogger('copilot-client') for structured logging
2026-02-28 20:28:56 +09:00
nrs
9ba05d8598
[ #395 ] github-issue-395-add-pull-from ( #397 )
...
* takt: github-issue-395-add-pull-from
* ci: trigger CI checks
* fix: taskDiffActions のコンフリクトマーカーを解消
origin/main でリネームされた「Merge from root」ラベル(PR #394)と、
このPR (#395 ) で追加した「Pull from remote」行を統合する。
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* ci: trigger CI checks
---------
Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
Co-authored-by: masanobu-naruse <m_naruse@codmon.co.jp>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 14:13:06 +09:00
Junichi Kato
fe0b7237a7
fix: 不正なtasks.yamlで削除せず停止するように修正 ( #418 )
...
* test: add regression coverage for invalid tasks.yaml preservation
* fix: keep invalid tasks.yaml untouched and fail fast
2026-02-28 13:02:03 +09:00
souki-kimura
ac4cb9c8a5
fix: fallback to normal clone when reference repository is shallow ( #376 ) ( #409 )
...
In shallow clone environments (e.g., DevContainer), `git clone --reference`
fails because Git cannot use a shallow repository as a reference. Add fallback
logic that detects the "reference repository is shallow" error and retries
without `--reference --dissociate`.
Co-authored-by: kimura <2023lmi-student009@la-study.com>
2026-02-28 13:01:18 +09:00
Yuma Satake
e77cb50ac1
feat: インタラクティブモードのスラッシュコマンドを行末でも認識可能にする ( #406 )
...
- スラッシュコマンド検出ロジックを commandMatcher.ts に分離
- 行頭・行末の両方でコマンドを認識し、行中は無視する仕様を実装
- conversationLoop を早期リターン + switch ディスパッチにリファクタリング
- SlashCommand 定数を shared/constants に追加
- コマンドマッチングのユニットテスト36件を追加
- 行末コマンド・行中非認識のE2Eテスト6件を追加
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:59:26 +09:00
Junichi Kato
252c337456
fix: Global/ProjectのmodelがModelログに反映されない不具合を修正 ( #417 )
...
* test: add regression for movement model log fallback
* fix: use configured model for movement model logging
2026-02-28 12:54:32 +09:00
nrs
7494149e75
[ #421 ] github-issue-421-feat-pr-opush ( #422 )
...
* takt: github-issue-421-feat-pr-opush
* docs: CONTRIBUTING のレビューモード説明を復元
--pr オプション追加に伴い削除されていたブランチモード・現在の差分モードの
ドキュメントを復元。コントリビューターはPR作成前にローカルでレビューする
ケースもあるため、全モードの記載が必要。
* fix: --pr でリモートブランチを fetch してからチェックアウト
他人のPRブランチはローカルに存在しないため、git fetch origin を
実行してからチェックアウトするように修正。また baseBranch を返す
ようにして --auto-pr 併用時の問題も解消。
* refactor: routing の排他条件を if/else に整理、不要なフォールバック削除
- routing.ts: prNumber の排他的分岐を if/else に統合
- pr.ts: data.body は string 型なので ?? '' フォールバックを削除
2026-02-28 12:53:35 +09:00
nrs
e256db8dea
takt: github-issue-398-branchexists ( #401 )
2026-02-28 12:31:24 +09:00
nrs
ae74c0d595
takt: #391 resolveConfigValue の無意味な defaultValue を撲滅する ( #392 )
2026-02-28 12:29:24 +09:00
Junichi Kato
b8b64f858b
feat: プロジェクト単位のCLIパス設定(Claude/Cursor/Codex) ( #413 )
...
* feat: プロジェクト単位のCLIパス設定を支援するconfig層を追加
validateCliPath汎用関数、Global/Project設定スキーマ拡張、
env override、3プロバイダ向けresolve関数(env→project→global→undefined)を追加。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat: Claude/Cursor/CodexプロバイダにCLIパス解決を統合
各プロバイダのtoXxxOptions()でproject configを読み込み、
resolveXxxCliPath()経由でCLIパスを解決してSDKに渡す。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* test: per-project CLIパス機能のテストを追加
validateCliPath, resolveClaudeCliPath, resolveCursorCliPath,
resolveCodexCliPath(project config層)のユニットテスト、
および既存プロバイダテストのモック更新。
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:44:16 +09:00
Junichi Kato
204843f498
Merge pull request #403 from j5ik2o/feature/cursor-agent-cli-provider-spec
...
feat: cursor-agent対応
2026-02-27 01:12:17 +09:00
nrslib
f61f71d127
fix: default write_tests skips when target type is unimplemented ( #396 )
2026-02-27 00:45:40 +09:00
nrslib
7e34d5c4c0
test: expand provider/model resolution matrix coverage
2026-02-27 00:30:07 +09:00
nrslib
644c318295
fix: unify agent provider/model resolution and remove custom agent overrides
2026-02-27 00:27:52 +09:00
nrs
551299dbf8
takt: github-issue-390-to-no-provide ( #393 )
2026-02-26 23:45:03 +09:00