798 Commits

Author SHA1 Message Date
nrs
658aebfcee
Merge pull request #442 from nrslib/release/v0.28.0
Release v0.28.0
2026-03-02 09:14:03 +09:00
nrslib
3acd30cc53 Release v0.28.0 v0.28.0 2026-03-02 09:00:10 +09:00
nrs
501639f6b5
Merge pull request #433 from nrslib/release/v0.28.0-alpha.1
Release v0.28.0-alpha.1
2026-02-28 22:08:38 +09:00
nrslib
9ce4358e9d Release v0.28.0-alpha.1 v0.28.0-alpha.1 2026-02-28 22:01:34 +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
nrslib
2be824b231 fix: PRコメント投稿ステップにも GH_REPO を設定
fork PR のレビュー結果投稿時に gh pr comment が fork 側を
参照して失敗する問題を修正。takt 実行ステップと同様に
GH_REPO: github.repository を env に追加。
2026-02-28 21:55:22 +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
nrslib
45663342c6 feat: ai-antipattern ポリシーに冗長な条件分岐パターン検出を追加
AI が生成しがちな if/else で同一関数を引数の有無のみ変えて
呼び出すパターンを REJECT 基準として定義。ai_review フェーズで
検出し、reviewers に到達する前に修正できるようにする。
既存のデッドコード例も TAKT 固有コードから汎用パターンに置換。
2026-02-28 17:48:10 +09:00
nrslib
ff31d9cb0c fix: fork PR レビュー時に GH_REPO を設定して正しいリポジトリの issue を参照 2026-02-28 17:37:30 +09:00
nrslib
5fd9022caa fix: takt-review を pull_request_target に変更して fork PR でもシークレットを利用可能に
- pull_request → pull_request_target でベースリポジトリのコンテキストで実行
- fork リポジトリからのチェックアウトに repository を追加
- ANTHROPIC_API_KEY が空の場合に即座にエラー終了するガードを追加
2026-02-28 17:34:41 +09:00
nrslib
e5665ed8cd fix: takt-review のトリガーに reopened を追加 2026-02-28 15:29:00 +09:00
nrslib
929557aa86 fix: takt-review が fork PR で失敗する問題を修正
head.ref(ブランチ名)は fork のブランチを解決できないため head.sha に変更
2026-02-28 15:10:01 +09:00
nrslib
fb0b34386f ci: pull_request の ready_for_review でもCIが走るように修正 2026-02-28 14:24:45 +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
nrslib
2d0dc127d0 refactor: cc-resolve をコンフリクト解決専用に変更
レビュー指摘対応の機能を削除し、コンフリクト解決のみに集中するように変更。
- Collect PR review comments ステップを削除
- プロンプトからレビュー関連セクションを削除
- コミット済みコンフリクトマーカーの検出を追加
- コミットメッセージを "fix: resolve merge conflicts" に変更
2026-02-28 14:08:04 +09:00
nrslib
88455b7594 fix: cc-resolve でマージコミットがあれば常に push するように修正 2026-02-28 13:48:49 +09:00
nrslib
8bb9ea4e8c fix: cc-resolve の Resolve ステップに GH_TOKEN を追加 2026-02-28 13:47:33 +09:00
nrslib
d05cb43432 fix: cc-resolve で Claude にフル権限を付与 (--dangerously-skip-permissions) 2026-02-28 13:45:02 +09:00
nrslib
2a8cc50ba0 fix: cc-resolve でフォークPRをスキップし、同一リポジトリPRのみ対応 2026-02-28 13:29:22 +09:00
nrslib
e4af465d72 fix: cc-resolve の checkout 前ステップに --repo を追加し、プロンプトを /resolve の観点に忠実に修正 2026-02-28 13:26:57 +09:00
nrslib
f6d59f4209 fix: cc-resolve の checkout 前ステップに --repo を追加 2026-02-28 13:06:18 +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
nrslib
09fda82677 ci: PRコメント /resolve でコンフリクト解決・レビュー指摘修正を行うワークフローを追加 2026-02-28 12:56:43 +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
nrslib
6d50221dd5 ci: PRに対するTAKT Reviewワークフローを追加
Environment承認方式で、メンテナーが承認するまで実行されない。
レビュー結果はPRコメントとアーティファクトに出力。
2026-02-28 12:06:13 +09:00
nrslib
4e9c02091a feat: add takt-default pieces and TAKT knowledge facet for self-development
- Add takt-default piece (5-parallel review, takt knowledge)
- Add takt-default-team-leader piece (team_leader implement variant)
- Add takt.md knowledge facet (EN/JA) covering TAKT architecture
- Add team-leader-implement instruction facet (EN/JA)
- Add TAKT Development category to piece-categories
2026-02-28 12:04:22 +09:00
nrslib
c7389a5b24 docs: add review mode examples to CONTRIBUTING 2026-02-28 09:48:23 +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
nrslib
52c5e29000 docs: require takt review before submitting PRs
Rewrite CONTRIBUTING.md to require contributors to run
takt -t "#<PR>" -w review and post the review summary as a
PR comment. Add Japanese version at docs/CONTRIBUTING.ja.md.
2026-02-28 09:39:59 +09:00
nrs
b6cd71e79d
Merge pull request #419 from nrslib/release/v0.27.0
Release v0.27.0
2026-02-28 08:52:14 +09:00
nrslib
6ac4d9a522 Release v0.27.0 v0.27.0 2026-02-28 08:50:03 +09:00
nrslib
7507c45314 fix: disable Gradle daemon in runtime prepare for Codex compatibility 2026-02-27 14:23:01 +09:00
nrslib
9a953e4774 docs: align agent/custom persona documentation 2026-02-27 09:35:00 +09:00
nrs
00b3277324
Merge pull request #407 from nrslib/release/v0.27.0-alpha.1
Release v0.27.0-alpha.1
2026-02-27 01:20:39 +09:00
nrslib
d5e139e769 Release v0.27.0-alpha.1 v0.27.0-alpha.1 2026-02-27 01:16:11 +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
nrs
0186cee1d1
Merge pull request #405 from nrslib/release/v0.26.0
Release v0.26.0
2026-02-27 01:04:27 +09:00
nrslib
ffe7d4d45e Release v0.26.0 v0.26.0 2026-02-27 01:01:11 +09:00
nrslib
f61f71d127 fix: default write_tests skips when target type is unimplemented (#396) 2026-02-27 00:45:40 +09:00
nrslib
e2289bfbd5 fix: fallback to local e2e repo when gh user lookup is invalid 2026-02-27 00:43:24 +09:00
nrslib
c9336c03d6 fix: increase gh api buffer in repertoire add 2026-02-27 00:34:54 +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