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
nrslib
798e89605d
feat: TeamLeader に refill threshold と動的パート追加を導入
...
TeamLeaderRunner を4モジュールに分割(execution, aggregation, common, streaming)し、
パート完了時にキュー残数が refill_threshold 以下になると追加タスクを動的に生成する
worker pool 型の実行モデルを実装。ParallelLogger に LineTimeSliceBuffer を追加し
ストリーミング出力を改善。deep-research ピースに team_leader 設定を追加。
2026-02-26 22:33:22 +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
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
Junichi Kato
f6334b8e75
feat: add submodule acquisition support in project config ( #387 )
2026-02-26 01:06:14 +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
6901b2a121
feat: default ピースをテスト先行開発に変更し、レポートファイル名をセマンティック命名に統一
...
- 全ピースのレポートファイル名から番号プレフィックスを除去(00-plan.md → plan.md 等)
- default ピースに write_tests ムーブメントと testing-review 並列レビューを追加
- プランナーに参照資料の意図判断ルールとスコープ外セクションを追加
2026-02-25 01:02:33 +09:00
nrslib
6bea78adb4
fix: lineEditor のサロゲートペア対応と Ctrl+J 改行挿入を追加
2026-02-24 23:51:07 +09:00
nrslib
a49d3af7a9
settingSources に project を追加し、CLAUDE.md の読み込みを SDK に委譲
...
手動で CLAUDE.md を読み込んでいた loadProjectContext を削除し、
SDK の settingSources: ['project'] でプロジェクトコンテキストを自動解決するよう変更
2026-02-24 16:48:43 +09:00
nrslib
cc7f73dc3e
review ピースに拡張: PR/ブランチ/現在の差分の3モード自動判定に対応
...
pr-review → review にリネームし、gather が入力テキストからモードを自動判定する。
ブランチ名の判定を git branch -a で確認する方式に強化、直近Nコミット指定に対応、
output contract にコミット履歴セクションを追加。
2026-02-24 13:11:31 +09:00
nrslib
c44477dea0
pr-review ピース追加: 5並列レビュー(arch/security/qa/testing/requirements)で PR を多角的にレビュー
...
gather → reviewers(並列5) → supervise → COMPLETE のフローで、PR情報とリンクIssueを収集後、
5つの専門レビュワーが並列にレビューし、supervisorが統合サマリーを出力する。
review-only と review-fix-minimal は pr-review に置き換えて削除。
2026-02-24 11:20:56 +09:00
nrs
dfc9263ef0
Merge pull request #369 from KentarouTakeda/support-ask-user-question
...
feat: AskUserQuestion 対応 (#161 )
2026-02-23 22:01:13 +09:00
nrslib
f2ca01ffe0
refactor: provider/model resolution precedenceを一元化
2026-02-23 15:28:38 +09:00
武田 憲太郎
61959f66a9
feat: AskUserQuestion 対応 ( #161 )
2026-02-23 15:24:10 +09:00
nrslib
69f13283a2
fix: movement provider override precedence in AgentRunner
2026-02-23 15:18:32 +09:00
nrslib
95cd36037a
feat: ProjectLocalConfig に concurrency を追加
2026-02-23 14:59:40 +09:00
nrslib
6a28929497
fix: 通知ユーティリティのテストモック追加と check:release の通知対応
...
通知機能(notifySuccess/notifyError/playWarningSound)追加に伴い、
テストの vi.mock を修正。重複モックの統合、vitest 環境変数の追加、
GH API の recursive パラメータ修正、check:release に macOS 通知を追加。
2026-02-23 14:34:20 +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
9e68f086d4
takt: refactor-project-config-case ( #358 )
2026-02-22 21:33:42 +09:00
nrs
c066db46c7
takt: refactor-clone-manager ( #359 )
2026-02-22 21:28:46 +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
nrslib
a5e2badc0b
fix: Claude resume候補をjsonlフォールバックで取得
2026-02-22 17:54:15 +09:00
nrs
077d19a6b0
Merge pull request #355 from s-kikuchi/takt/20260222T0402-tasuku-purojekuto-takt-config
...
fix: Project-level model config ignored — getLocalLayerValue missing model case
2026-02-22 17:35:33 +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
kikuchi
753deb6539
fix: Project-level model config ignored — getLocalLayerValue missing model case
2026-02-22 13:49:32 +09:00
nrslib
c630d78806
refactor: rename ensemble to repertoire across codebase
2026-02-22 10:50:50 +09:00