761 Commits

Author SHA1 Message Date
nrslib
69a941ad30 Release v0.23.0 2026-02-23 15:38:07 +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
3970b6bcf9 fix: repertoire add のパイプ stdin で複数 confirm が失敗する問題を修正
gh api の stdio を inherit→pipe に変更し stdin の消費を防止。
readline の内部バッファ消失を防ぐためシングルトン pipe line queue を導入。
2026-02-23 15:18:52 +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
4ee69f857a
add-e2e-coverage (#364)
* takt: add-e2e-coverage

* takt: add-e2e-coverage
2026-02-23 13:00:48 +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
nrslib
e75e024fa8 feat: default-test-first-mini ピースを追加
テストファースト開発ワークフロー(plan → write_tests → implement → review → fix)。
新規インストラクション write-tests-first, implement-after-tests を追加。
piece-categories に Mini カテゴリとテストファーストカテゴリとして登録。
2026-02-22 21:22:11 +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
4a4a8efaf7
policy: enforce abstraction level consistency in orchestration functions (#362)
- Add orchestration function guidance to 'Keep Abstraction Levels Consistent'
  section in coding policy (ja/en) — no #### nesting, integrated as paragraph
  - Criterion: whether branch belongs at the function's abstraction level
  - Concrete bad/good examples using pipeline pattern
- Add 1-line behavioral guideline to architecture-reviewer persona (ja/en)
  - ja: 関数の責務より低い粒度の分岐が混入していたら見逃さない
  - en: Do not overlook branches below a function's responsibility level
2026-02-22 20:32:53 +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
134b666480
Merge pull request #350 from tomohisa/fix/worktree-dir-plural
fix: use plural 'takt-worktrees' as default clone directory name
2026-02-22 17:41:21 +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
nrslib
2a3ff222b8 ci: PR時にlint, test, e2e:mockを必須チェックとして実行 2026-02-22 17:21:22 +09:00
kikuchi
753deb6539 fix: Project-level model config ignored — getLocalLayerValue missing model case 2026-02-22 13:49:32 +09:00
nrslib
e57612d703 ci: tag PR head SHA instead of merge commit for hotfix support 2026-02-22 12:32:15 +09:00
nrslib
717afd232f fix: remove non-existent ensemble→repertoire breaking change from CHANGELOG 2026-02-22 12:29:50 +09:00
nrs
d2c4acd3de
Merge pull request #353 from nrslib/release/v0.22.0
Release v0.22.0
v0.22.0
2026-02-22 12:18:53 +09:00
nrslib
dcf29a86c2 Merge remote-tracking branch 'origin/main' into release/v0.22.0 2026-02-22 12:15:07 +09:00
nrslib
709e81fe16 Release v0.22.0 2026-02-22 12:14:58 +09:00
nrslib
c630d78806 refactor: rename ensemble to repertoire across codebase 2026-02-22 10:50:50 +09:00
nrslib
a59ad1d808 docs: add ensemble package documentation (en/ja) 2026-02-22 08:16:20 +09:00
nrslib
6a42bc79d1 fix: remove internal spec doc, add missing e2e tests 2026-02-22 08:14:37 +09:00
nrslib
d04f27df79 fix: restore accidentally deleted takt-pack-spec.md 2026-02-22 08:12:34 +09:00
nrslib
53a465ef56 fix: update deploySkill for facets layout, add piped stdin confirm support 2026-02-22 08:12:00 +09:00
nrslib
3e9dee5779 Release v0.22.0 2026-02-22 08:07:54 +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
f6d3ef3ec1 facet: implement/fixにビルド(型チェック)必須ゲートを追加
テスト中心の品質ゲートではtscでしか検出できない型エラーを
取りこぼしていたため、ビルド確認を必須項目として追加
2026-02-22 02:18:10 +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
Tomohisa Takaoka
2e72054c0d fix: use plural 'takt-worktrees' as default clone directory name
The default clone base directory was 'takt-worktree' (singular), which is
inconsistent since multiple worktrees are created inside it.

Changed to 'takt-worktrees' (plural) while maintaining backward compatibility:
- If existing 'takt-worktree' directory exists, continue using it
- New installations will use 'takt-worktrees'
- Explicit worktree_dir config always takes priority
2026-02-21 08:47:42 -08:00
nrslib
fa42ef7561 facet: 契約文字列のハードコード散在を防止するルールを追加
ポリシー・実装インストラクション・アーキテクチャレビューの3箇所に
ファイル名・設定キー名などの契約文字列を定数で一箇所管理するルールを追加。
2026-02-22 00:32:11 +09:00
nrslib
9103a93fee docs: add Discord community link to README 2026-02-21 22:10:30 +09:00
nrslib
75ce583d0b fix: イテレーション入力待ち中のpoll_tickログ連続出力を抑制
入力待ちフラグ(enterInputWait/leaveInputWait)を導入し、
selectOption待ち中はワーカープールのポーリングログをスキップする。
入力完了で自動復活。
2026-02-20 23:42:38 +09:00
nrs
4823a9cb83
Merge pull request #343 from nrslib/release/v0.21.0
Release v0.21.0
v0.21.0
2026-02-20 20:02:51 +09:00