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
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
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
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
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
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
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
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
nrs
deca6a2f3d
[ #368 ] fix-broken-issue-title-session ( #371 )
...
* takt: fix-broken-issue-title-session
* takt: fix-broken-issue-title-session
2026-02-26 13:33:02 +09:00
nrs
61f0be34b5
Merge pull request #394 from nrslib/rename-sync-with-root
...
Rename 'Sync with root' to 'Merge from root'
2026-02-26 11:20:38 +09:00
nrslib
f6d8c353d3
refactor: provider のデフォルト値 'claude' を廃止し明示設定を必須化
...
暗黙の claude フォールバックを削除し、未設定時は明確なエラーを返すように変更。
permission は未設定時 readonly にフォールバック。テスト・E2E を新挙動に適合。
2026-02-26 02:11:49 +09:00
nrs
6d0bac9d07
[ #367 ] abstract-git-provider ( #375 )
...
* takt: abstract-git-provider
* takt: abstract-git-provider
* takt: abstract-git-provider
* fix: pushBranch のインポートパスを infra/task に修正
Git provider 抽象化により pushBranch が infra/github から infra/task に
移動したため、taskSyncAction とテストのインポートパスを更新。
2026-02-26 01:09:29 +09:00
nrslib
e39792259e
fix: --task でもワークツリー作成時は tasks.yaml に記録する
...
--task オプションで skipTaskList=true になるが、ワークツリー作成時は
takt list でのブランチ管理に必要なためタスク記録を保存する。
2026-02-26 00:55:24 +09:00
nrslib
9f15840d63
refactor: sync with root をピースエンジンから単発エージェント呼び出しに変更
...
- executeTask(フルピースエンジン)→ Provider 抽象経由の単発エージェント呼び出しに簡素化
- Claude 固定の callClaudeCustom → getProvider() による Provider 抽象化
- permissionMode: 'full' → 'edit' + onPermissionRequest で Bash 自動承認
- コンフリクト解決プロンプトをテンプレートファイル(en/ja)に分離
- sync 後に worktree → project → origin の2段階プッシュを追加
2026-02-26 00:33:33 +09:00
Yuma Satake
6a175bcb11
Merge pull request #377 from Yuma-Satake/feature/issue-111
...
Fix #111 Issue作成時にラベルを選択できるようにする
2026-02-25 23:48:36 +09:00
nrslib
6bea78adb4
fix: lineEditor のサロゲートペア対応と Ctrl+J 改行挿入を追加
2026-02-24 23:51:07 +09:00
武田 憲太郎
61959f66a9
feat: AskUserQuestion 対応 ( #161 )
2026-02-23 15:24:10 +09:00
nrs
e5902b87ad
takt: Execute アクションで tasks.yaml への追加をスキップする skipTaskList オプション ( #334 )
...
- SelectAndExecuteOptions に skipTaskList フラグを追加
- routing.ts の Execute アクションで skipTaskList: true を設定
- taskRecord の null チェックで条件分岐を統一
- テストを現在の taskResultHandler API に合わせて修正
2026-02-22 22:05:13 +09:00
nrs
f307ed80f0
takt: tasuku-takt-list-komandoni-iss ( #335 )
2026-02-22 21:57:48 +09:00
nrs
4a7dea48ca
takt: tasuku-taktga-surupull-request ( #336 )
2026-02-22 21:52:40 +09:00
nrs
b309233aeb
takt: github-issue-328-tasuku-ritora ( #340 )
2026-02-22 21:43:25 +09:00
nrs
1acd991e7e
feat: pipeline モードでの Slack 通知を強化 ( #346 ) ( #347 )
...
* feat: pipeline モードでの Slack 通知を try/finally パターンで実装
- executePipeline の本体を try/finally で囲み、全終了パスで通知を送信
- PipelineResult でスプレッド演算子による不変状態追跡
- notifySlack ヘルパーで webhook 未設定時は即 return
- 既存の早期リターンパターンを保持したまま通知機能を追加
* refactor: executePipeline のオーケストレーションと各ステップを分離
- execute.ts: オーケストレーション + Slack 通知 (157行)
- steps.ts: 5つのステップ関数 + テンプレートヘルパー (233行)
- runPipeline で全ステップを同じ抽象レベルに揃えた
- buildResult ヘルパーで let 再代入を最小化
* test: commitAndPush の git 操作失敗時の exit code 4 テストを追加
2026-02-22 21:06:29 +09:00
Tomohisa Takaoka
a08adadfb3
fix: PR creation failure handling + use default branch for base ( #345 )
...
* fix: mark task as failed when PR creation fails
Previously, when PR creation failed (e.g. invalid base branch),
the task was still marked as 'completed' even though the PR was
not created. This fix ensures:
- postExecutionFlow returns prFailed/prError on failure
- executeAndCompleteTask marks the task as failed when PR fails
- selectAndExecuteTask runs postExecution before persisting result
The pipeline path (executePipeline) already handled this correctly
via EXIT_PR_CREATION_FAILED.
* fix: use detectDefaultBranch instead of getCurrentBranch for PR base
Previously, baseBranch for PR creation was set to HEAD's current branch
via getCurrentBranch(). When the user was on a feature branch like
'codex/pr-16-review', PRs were created with --base codex/pr-16-review,
which fails because it doesn't exist on the remote.
Now uses detectDefaultBranch() (via git symbolic-ref refs/remotes/origin/HEAD)
to always use the actual default branch (main/master) as the PR base.
Affected paths:
- resolveTask.ts (takt run)
- selectAndExecute.ts (interactive mode)
- pipeline/execute.ts (takt pipeline)
2026-02-22 20:37:14 +09:00
nrs
f557db0908
feat: support --create-worktree in pipeline mode ( #361 )
...
Pipeline mode previously ignored the --create-worktree option.
Now when --create-worktree yes is specified with --pipeline,
a worktree is created and the agent executes in the isolated directory.
- Add createWorktree field to PipelineExecutionOptions
- Pass createWorktreeOverride from routing to executePipeline
- Use confirmAndCreateWorktree when createWorktree is true
- Execute task in worktree directory (execCwd) instead of project cwd
2026-02-22 20:32:36 +09:00
nrs
1d6770c479
Merge pull request #344 from tomohisa/feat/auto-sync-before-clone
...
feat: opt-in auto_fetch and base_branch config for clone
2026-02-22 17:29:39 +09:00
nrslib
c630d78806
refactor: rename ensemble to repertoire across codebase
2026-02-22 10:50:50 +09:00
nrslib
53a465ef56
fix: update deploySkill for facets layout, add piped stdin confirm support
2026-02-22 08:12:00 +09:00
Tomohisa Takaoka
1d7336950e
feat: opt-in auto_fetch and base_branch config for clone
...
Replace the always-on syncDefaultBranch with opt-in resolveBaseBranch:
- Add auto_fetch config (default: false) — only fetch when enabled
- Add base_branch config (project and global) — fallback to current branch
- Fetch-only mode: git fetch origin without modifying local branches
- Use fetched commit hash (origin/<base_branch>) to reset clone to latest
- No more git merge --ff-only or git fetch origin main:main
Config example:
# ~/.takt/config.yaml or .takt/config.yaml
auto_fetch: true
base_branch: develop
Addresses review feedback: opt-in behavior, no local branch changes,
configurable base branch with current-branch fallback.
2026-02-21 12:30:26 -08:00
nrslib
9e3fb5cf16
fix: validate override piece via resolver including ensemble scope
2026-02-22 02:47:11 +09:00
nrslib
102f31447a
refactor: rename faceted to facets across package layout
2026-02-22 02:40:33 +09:00
nrslib
8930688a95
fix: simplify package content check and facets label
2026-02-22 02:39:25 +09:00
nrslib
9e6e7e3550
update message
2026-02-22 02:27:47 +09:00
nrslib
cb0b7a04ca
fix: resolve ensemble build type errors
2026-02-22 02:19:18 +09:00
nrslib
05865eb04e
refactor: centralize ensemble manifest filename constant
2026-02-22 02:07:32 +09:00
nrslib
b6e3c7883d
feat: implement ensemble package import and faceted layout
2026-02-22 02:05:48 +09:00
nrslib
75ce583d0b
fix: イテレーション入力待ち中のpoll_tickログ連続出力を抑制
...
入力待ちフラグ(enterInputWait/leaveInputWait)を導入し、
selectOption待ち中はワーカープールのポーリングログをスキップする。
入力完了で自動復活。
2026-02-20 23:42:38 +09:00
nrs
b9dfe93d85
takt: add-sync-with-root ( #325 )
2026-02-20 11:58:48 +09:00
nrs
dec77e069e
add-model-to-persona-providers ( #324 )
...
* takt: add-model-to-persona-providers
* refactor: loadConfigを廃止しresolveConfigValueにキー単位解決を一元化
loadConfig()による一括マージを廃止し、resolveConfigValue()でキーごとに
global/project/piece/envの優先順位を宣言的に解決する方式に移行。
providerOptionsの優先順位をglobal < piece < project < envに修正し、
sourceトラッキングでOptionsBuilderのマージ方向を制御する。
2026-02-20 11:12:46 +09:00