From takt
既存のTAKTワークフロー(ピースYAML・ファセット群)を最適化するスキル。 トークン消費削減、ムーブメント統合、ルール簡素化、ファセット再利用促進、 ループ制御の改善、並列化の提案を実施し、最適化後のファイルを直接生成する。 takt-analyzeの診断結果(静的分析・ログ診断)を入力として活用できる。 本スキルは「最適化の実行」のみを担い、診断・分析はtakt-analyzeに委譲する。 references/taktのエンジン仕様・スタイルガイドを基準とする。 トリガー:「ピースを最適化」「taktの高速化」「ワークフローを軽くしたい」 「トークンを減らしたい」「ムーブメントを減らしたい」「takt optimize」 「ワークフローの効率化」「ファセットを整理したい」「ピースをスリムにして」 「taktのコスト削減」「ワークフローをシンプルにしたい」
npx claudepluginhub j5ik2o/ai-tools --plugin taktThis skill uses the workspace's default tool permissions.
既存のTAKTワークフローの最適化を実行する。診断・分析は takt-analyze が担う。
SKILL.en.mdSKILL.ja.mdreferences/takt/builtins/ja/INSTRUCTION_STYLE_GUIDE.mdreferences/takt/builtins/ja/KNOWLEDGE_STYLE_GUIDE.mdreferences/takt/builtins/ja/OUTPUT_CONTRACT_STYLE_GUIDE.mdreferences/takt/builtins/ja/PERSONA_STYLE_GUIDE.mdreferences/takt/builtins/ja/POLICY_STYLE_GUIDE.mdreferences/takt/builtins/ja/STYLE_GUIDE.mdreferences/takt/builtins/ja/config.yamlreferences/takt/builtins/ja/facets/instructions/ai-fix.mdreferences/takt/builtins/ja/facets/instructions/ai-review.mdreferences/takt/builtins/ja/facets/instructions/arbitrate.mdreferences/takt/builtins/ja/facets/instructions/architect.mdreferences/takt/builtins/ja/facets/instructions/dual-team-leader-implement.mdreferences/takt/builtins/ja/facets/instructions/fix-supervisor.mdreferences/takt/builtins/ja/facets/instructions/fix.mdreferences/takt/builtins/ja/facets/instructions/gather-review.mdreferences/takt/builtins/ja/facets/instructions/implement-after-tests.mdreferences/takt/builtins/ja/facets/instructions/implement-e2e-test.mdreferences/takt/builtins/ja/facets/instructions/implement-terraform.md既存のTAKTピースとファセットを分析し、改善提案を行うスキル。ピースYAMLの構造検証、 ファセット間の整合性チェック、スタイルガイド準拠の確認、未使用ファセットの検出、 ルール設計の最適化提案を実施する。実行ログ(.takt/logs/*.jsonl)が存在する場合は ログベース診断分析も行い、ルール評価効率・ループホットスポット・ABORT率等を報告する。 references/taktのスタイルガイド・エンジン仕様を基準として分析する。 トリガー:「ピースを分析」「taktの設定を確認」「ファセットの品質チェック」 「ピースのレビュー」「takt analyze」「ワークフローの改善提案」 「ピースの整合性チェック」「taktの問題を見つけて」 「ログを分析」「実行ログの診断」「taktのログを見て」「ルール評価の統計」 「ai_fallbackの頻度」「ループの検出」
Orchestrates performance optimization workflows using static code analysis to detect bottlenecks like N+1 queries, missing indexes, O(n^2) algorithms, blocking I/O, and memory leaks. Accepts profiling data.
Orchestrates performance fixes via static analysis for bottlenecks like N+1 queries, missing indexes, O(n^2) algorithms, blocking I/O, memory leaks. Accepts profiling data; runs spec/plan/impl/verify phases.
Share bugs, ideas, or general feedback.
既存のTAKTワークフローの最適化を実行する。診断・分析は takt-analyze が担う。
前提 takt バージョン: v0.31.0
| 資料 | パス | 用途 |
|---|---|---|
| YAMLスキーマ | references/takt/builtins/skill/references/yaml-schema.md | ピース構造の検証基準 |
| エンジン仕様 | references/takt/builtins/skill/references/engine.md | プロンプト構築・トークン消費の理解 |
| スタイルガイド群 | references/takt/builtins/ja/*_STYLE_GUIDE.md | ファセットサイズ上限 |
| ビルトインピース | references/takt/builtins/ja/pieces/ | 最適化パターンの参照 |
| ビルトインファセット | references/takt/builtins/ja/facets/{personas,policies,instructions,knowledge,output-contracts}/ | ビルトイン置換候補 |
| 観点 | takt-analyze | takt-optimize |
|---|---|---|
| 目的 | 問題検出・診断とレポート | 最適化の実行 |
| 出力 | 分析レポート(Markdown) | 最適化済みファイル群 |
| 変更 | なし(読み取り専用) | ファイルを直接編集・生成 |
| 入力 | ピースYAML + ファセット + 実行ログ | ピースYAML + ファセット + takt-analyzeの診断結果 |
| 判断 | 問題の重大度分類 | コスト/品質のトレードオフ判断 |
| ログ分析 | 自ら実行し診断レポートを生成 | takt-analyzeの診断結果を活用 |
推奨フロー:
takt-analyze(診断)→ その結果をもとにtakt-optimize(最適化実行)
プロンプト構築時のトークン量を削減する。
エンジンのプロンプト構築順序(参照: engine.md):
ペルソナ → ポリシー → コンテキスト → ナレッジ → インストラクション
→ タスク → 前回出力 → レポート指示 → タグ指示 → ポリシーリマインダー
注意: ポリシーは冒頭と末尾に2回注入される(Lost in the Middle対策)。ポリシーの肥大化はトークン消費を2倍にする。
| 最適化 | 手法 | 効果 |
|---|---|---|
| ペルソナ圧縮 | 冗長な記述の除去、サイズ上限内への圧縮 | 各ムーブメントで削減 |
| ポリシー分割 | 巨大ポリシーを用途別に分割し、必要なムーブメントにのみ割り当て | 2倍効果(リマインダー分) |
| ナレッジ絞り込み | ムーブメントに不要なナレッジ参照を除去 | 不要コンテキスト削減 |
| インストラクション簡素化 | 自動注入される内容の手動記述を除去 | 重複排除 |
| 出力契約スリム化 | 30行超の出力契約を圧縮 | レポート指示部分で削減 |
ファセットサイズ目安:
| ファセット | 推奨 | 上限 |
|---|---|---|
| Persona (simple) | 30-50行 | 100行 |
| Persona (expert) | 50-300行 | 550行 |
| Policy | 60-250行 | 300行 |
| Instruction (review) | 5-12行 | - |
| Instruction (plan/fix) | 10-20行 | - |
| Instruction (implement) | 30-50行 | - |
| Output Contract | 10-25行 | 30行 |
不要なムーブメントを統合してワークフロー全体のステップ数を減らす。
| パターン | 検出条件 | 最適化 |
|---|---|---|
| 連続する同一ペルソナ | 隣接ムーブメントが同じペルソナ | 1ムーブメントに統合 |
| 単一ルール遷移 | ルールが1つで無条件遷移 | 前後ムーブメントと統合検討 |
| edit=false連鎖 | 読み取り専用ムーブメントの連鎖 | 統合可能性を評価 |
統合判断基準:
ルール条件の効率化を行う。
| 最適化 | Before | After |
|---|---|---|
| ai()→タグ置換 | ai("実装が完了した") | "実装完了" (タグベース) |
| 到達不能ルール除去 | 3つの条件うち1つが不到達 | 不到達ルールを削除 |
| 条件テキスト短縮 | "全てのレビュアーが承認した" | "approved" |
ai() vs タグベースの判断:
カスタムファセットをビルトインで代替し、セクションマップを削減する。
手順:
ビルトイン置換例:
# Before: カスタムファセットをセクションマップで参照
personas:
my-coder: ../personas/my-coder.md
movements:
- name: implement
persona: my-coder
# After: ビルトインのbare name参照
movements:
- name: implement
persona: coder # ビルトインを直接参照
置換不可の条件:
修正ループの効率化と安全性を改善する。
| 最適化 | 内容 |
|---|---|
| loop_monitors追加 | review→fixサイクルにloop_monitorがない場合に追加 |
| threshold調整 | 閾値が高すぎる/低すぎる場合に適正値を提案 |
| ABORT条件追加 | 失敗時のABORT遷移がない場合に追加 |
| max_movements調整 | ムーブメント数に対してmax_movementsが過大/過小な場合に調整 |
| supervise失敗遷移の修正 | supervise 失敗時に plan へ遷移するルールを fix に変更する。supervise → plan ループは高コストで非生産的になりやすい |
| edit=false ビルド禁止の追記 | edit: false のムーブメントが参照するインストラクションに「ビルドコマンドを実行しないこと」の禁止セクション(## やらないこと)を追加する |
| loop monitor judge の instruction 正規化 | loop_monitors.judge.instruction をビルトインファセット参照(loop-monitor-ai-fix, loop-monitor-reviewers-fix)へ統一し、旧 judge テンプレート記法を除去する |
| allowed_tools の provider_options 移行 | トップレベルの allowed_tools を provider_options.claude.allowed_tools に移動する(v0.30.0〜) |
threshold推奨値:
逐次実行されているが並列化可能なムーブメントを検出する。
並列化条件:
# Before: 逐次レビュー
- name: arch-review
...
rules:
- condition: done
next: qa-review
- name: qa-review
...
# After: 並列レビュー
- name: reviewers
parallel:
- name: arch-review
...
rules:
- condition: approved
- condition: needs_fix
- name: qa-review
...
rules:
- condition: approved
- condition: needs_fix
rules:
- condition: all("approved")
next: supervise
- condition: any("needs_fix")
next: fix
takt-analyze のログ診断結果を入力として、実データに基づく最適化を実行する。
前提: ログの読み込み・解析・診断は takt-analyze が担当する。本カテゴリでは診断結果を受けて「何を変更するか」のみを扱う。
診断結果 → 最適化アクション:
| takt-analyze の診断 | 最適化アクション |
|---|---|
| ループホットスポット(Warning/Critical) | loop_monitor の threshold 調整、ルール条件の見直し |
| デッドルール(Critical) | 到達不能ルールの除去 |
ルール評価効率が低い(ai_judge_fallback 高頻度) | タグベースルールへの書き換え、output-contract にタグ出力指示を追加 |
| ABORT率が高い | ABORT原因の reason に応じたフロー改善(max_movements 調整、ABORT条件の追加) |
| フェーズ別エラーの繰り返し | エラー頻発フェーズのインストラクション・ペルソナの改善 |
| イテレーション効率が低い | max_movements の適正値算出、ムーブメント統合の検討 |
対象のピースYAMLを特定し、関連ファセットを全て読み込む。
探索順序:
1. ユーザー指定のパス
2. ~/.takt/pieces/ 内のカスタムピース
3. .takt/pieces/ 内のプロジェクトピース
読み込む内容:
各カテゴリの最適化可能性を評価し、プランを提示する。
# 最適化プラン: {ピース名}
## 分析ソース
- 静的分析: ピースYAML + ファセット{N}件
- takt-analyze診断: {診断レポートの要約}(提供された場合)
## 推定効果
- トークン削減: 約{N}%
- ムーブメント数: {before} → {after}
- ファイル数: {before} → {after}
## 最適化項目
| # | カテゴリ | 対象 | 内容 | 根拠 | リスク |
|---|---------|------|------|------|--------|
| 1 | トークン削減 | persona/coder | 120行→80行に圧縮 | 静的 | 低 |
| 2 | ビルトイン置換 | persona/my-reviewer | → architecture-reviewer | 静的 | 低 |
| 3 | ルール簡素化 | ai_review | ai_fallback 67% → タグ化 | 診断 | 低 |
| 4 | 並列化 | arch-review + qa-review | 逐次→並列 | 静的 | 中 |
ユーザーに確認: プランを提示し、実行する項目の承認を得る。
判定フロー:
承認された項目を実行する。
実行順序(依存関係順):
最適化後のファイル群の整合性を確認する。
initial_movementがmovements配列内に存在nextが有効な遷移先all()/any()を使用nextがない# 最適化結果: {ピース名}
## サマリー
- トークン削減: 約{N}%(推定)
- ムーブメント数: {before} → {after}
- ファイル数: {before} → {after}
## 変更一覧
| # | ファイル | 変更内容 |
|---|---------|---------|
| 1 | pieces/my-piece.yaml | ムーブメント統合、ルール簡素化 |
| 2 | personas/coder.md | 120行→80行に圧縮 |
| 3 | (削除) personas/my-reviewer.md | ビルトインに置換 |
## 削除ファイル
- personas/my-reviewer.md(→ ビルトイン architecture-reviewer で代替)
## 注意事項
{最適化による動作変更の可能性がある場合に記載}
作成・編集したファイルは validate-takt-files.sh で機械的に検証できる:
bash .agents/skills/takt-optimize/scripts/validate-takt-files.sh
検証項目:
name/initial_movement/movements)、initial_movement の movement 参照、ファセットファイル参照の実在# 見出し 必須、instruction/output-contract は内容存在オプション --pieces / --facets で対象を絞り込み可能。