Release v0.22.0

This commit is contained in:
nrslib 2026-02-22 12:14:58 +09:00
parent c630d78806
commit 709e81fe16
4 changed files with 18 additions and 1923 deletions

View File

@ -10,30 +10,34 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
### Added
- **Ensemble package system** (`takt ensemble add/remove/list`): Import and manage external TAKT packages from GitHub — `takt ensemble add github:{owner}/{repo}@{ref}` downloads packages to `~/.takt/ensemble/` with atomic installation, version compatibility checks, lock files, and package content summary before confirmation
- **@scope references in piece YAML**: Facet references now support `@{owner}/{repo}/{facet-name}` syntax to reference facets from installed ensemble packages (e.g., `persona: @nrslib/takt-fullstack/expert-coder`)
- **4-layer facet resolution**: Upgraded from 3-layer (project → user → builtin) to 4-layer (package-local → project → user → builtin) — ensemble package pieces automatically resolve their own facets first
- **Ensemble category in piece selection**: Installed ensemble packages automatically appear as subcategories under an "ensemble" category in the piece selection UI
- **Repertoire package system** (`takt repertoire add/remove/list`): Import and manage external TAKT packages from GitHub — `takt repertoire add github:{owner}/{repo}@{ref}` downloads packages to `~/.takt/repertoire/` with atomic installation, version compatibility checks, lock files, and package content summary before confirmation
- **@scope references in piece YAML**: Facet references now support `@{owner}/{repo}/{facet-name}` syntax to reference facets from installed repertoire packages (e.g., `persona: @nrslib/takt-fullstack/expert-coder`)
- **4-layer facet resolution**: Upgraded from 3-layer (project → user → builtin) to 4-layer (package-local → project → user → builtin) — repertoire package pieces automatically resolve their own facets first
- **Repertoire category in piece selection**: Installed repertoire packages automatically appear as subcategories under a "repertoire" category in the piece selection UI
- **Build gate in implement/fix instructions**: `implement` and `fix` builtin instructions now require build (type check) verification before test execution
- **Repertoire package documentation**: Added comprehensive docs for the repertoire package system ([en](./docs/repertoire.md), [ja](./docs/repertoire.ja.md))
### Changed
- **BREAKING: "ensemble" renamed to "repertoire"**: All CLI commands, directories, config keys, and APIs renamed — `takt ensemble``takt repertoire`, `~/.takt/ensemble/``~/.takt/repertoire/`. Migration: rename your `~/.takt/ensemble/` directory to `~/.takt/repertoire/`
- **BREAKING: Facets directory restructured**: Facet directories moved under a `facets/` subdirectory at all levels — `builtins/{lang}/{facetType}/``builtins/{lang}/facets/{facetType}/`, `~/.takt/{facetType}/``~/.takt/facets/{facetType}/`, `.takt/{facetType}/``.takt/facets/{facetType}/`. Migration: move your custom facet files into the new `facets/` subdirectory
- Contract string hardcoding prevention rule added to coding policy and architecture review instruction
### Fixed
- Override piece validation now includes ensemble scope via the resolver
- Override piece validation now includes repertoire scope via the resolver
- `takt export-cc` now reads facets from the new `builtins/{lang}/facets/` directory structure
- `confirm()` prompt now supports piped stdin (e.g., `echo "y" | takt ensemble add ...`)
- `confirm()` prompt now supports piped stdin (e.g., `echo "y" | takt repertoire add ...`)
- Suppressed `poll_tick` debug log flooding during iteration input wait
- Piece resolver `stat()` calls now catch errors gracefully instead of crashing on inaccessible entries
### Internal
- Comprehensive ensemble test suite: atomic-update, ensemble-paths, file-filter, github-ref-resolver, github-spec, list, lock-file, pack-summary, package-facet-resolution, remove-reference-check, remove, takt-ensemble-config, tar-parser, takt-ensemble-schema
- Comprehensive repertoire test suite: atomic-update, repertoire-paths, file-filter, github-ref-resolver, github-spec, list, lock-file, pack-summary, package-facet-resolution, remove-reference-check, remove, takt-repertoire-config, tar-parser, takt-repertoire-schema
- Added `src/faceted-prompting/scope.ts` for @scope reference parsing, validation, and resolution
- Added scope-ref tests for the faceted-prompting module
- Added `inputWait.ts` for shared input-wait state to suppress worker pool log noise
- Added piece-selection-branches and repertoire e2e tests
## [0.21.0] - 2026-02-20

View File

@ -145,7 +145,7 @@ See the [Builtin Catalog](./docs/builtin-catalog.md) for all pieces and personas
| `takt #N` | Execute GitHub Issue as task |
| `takt switch` | Switch active piece |
| `takt eject` | Copy builtin pieces/personas for customization |
| `takt ensemble add` | Install an ensemble package from GitHub |
| `takt repertoire add` | Install a repertoire package from GitHub |
See the [CLI Reference](./docs/cli-reference.md) for all commands and options.
@ -214,7 +214,7 @@ See the [CI/CD Guide](./docs/ci-cd.md) for full setup instructions.
├── config.yaml # Provider, model, language, etc.
├── pieces/ # User piece definitions
├── facets/ # User facets (personas, policies, knowledge, etc.)
└── ensemble/ # Installed ensemble packages
└── repertoire/ # Installed repertoire packages
.takt/ # Project-level
├── config.yaml # Project config
@ -250,7 +250,7 @@ await engine.run();
| [Agent Guide](./docs/agents.md) | Custom agent configuration |
| [Builtin Catalog](./docs/builtin-catalog.md) | All builtin pieces and personas |
| [Faceted Prompting](./docs/faceted-prompting.md) | Prompt design methodology |
| [Ensemble Packages](./docs/ensemble.md) | Installing and sharing packages |
| [Repertoire Packages](./docs/repertoire.md) | Installing and sharing packages |
| [Task Management](./docs/task-management.md) | Task queuing, execution, isolation |
| [CI/CD Integration](./docs/ci-cd.md) | GitHub Actions and pipeline mode |
| [Changelog](./CHANGELOG.md) ([日本語](./docs/CHANGELOG.ja.md)) | Version history |

View File

@ -15,8 +15,11 @@
- **4層ファセット解決**: 3層project → user → builtinから4層package-local → project → user → builtinに拡張 — repertoire パッケージのピースは自パッケージ内のファセットを最優先で解決
- **ピース選択に repertoire カテゴリ追加**: インストール済みの repertoire パッケージがピース選択 UI の「repertoire」カテゴリにサブカテゴリとして自動表示
- **implement/fix インストラクションにビルドゲート追加**: `implement``fix` のビルトインインストラクションでテスト実行前にビルド(型チェック)の実行を必須化
- **Repertoire パッケージドキュメント追加**: repertoire パッケージシステムの包括的なドキュメントを追加([en](./repertoire.md), [ja](./repertoire.ja.md)
### Changed
- **BREAKING: "ensemble" を "repertoire" にリネーム**: 全 CLI コマンド、ディレクトリ、設定キー、API を変更 — `takt ensemble``takt repertoire``~/.takt/ensemble/``~/.takt/repertoire/`。マイグレーション: `~/.takt/ensemble/` ディレクトリを `~/.takt/repertoire/` にリネームしてください
- **BREAKING: ファセットディレクトリ構造の変更**: 全レイヤーでファセットディレクトリが `facets/` サブディレクトリ配下に移動 — `builtins/{lang}/{facetType}/``builtins/{lang}/facets/{facetType}/``~/.takt/{facetType}/``~/.takt/facets/{facetType}/``.takt/{facetType}/``.takt/facets/{facetType}/`。マイグレーション: カスタムファセットファイルを新しい `facets/` サブディレクトリに移動してください
- 契約文字列のハードコード散在防止ルールをコーディングポリシーとアーキテクチャレビューインストラクションに追加
@ -34,6 +37,7 @@
- `src/faceted-prompting/scope.ts` を追加(@scope 参照のパース・バリデーション・解決)
- faceted-prompting モジュールの scope-ref テストを追加
- `inputWait.ts` を追加(ワーカープールのログノイズ抑制のための入力待ち状態共有)
- piece-selection-branches および repertoire の e2e テストを追加
## [0.21.0] - 2026-02-20

File diff suppressed because it is too large Load Diff