mcpField
T
takt-analyzer

takt-analyzer

github.com/j5ik2oエージェントワークフロー2881 回インストール13 週間前に更新
リポジトリ

takt-analyzer について

takt-analyzerは、既存のTAKTワークフローとFacetを診断する読み取り専用スキルです。設定や実行状況を確認する保守担当者向けに、重大度付きのMarkdownレポートを作成し、実行ログがあればログ診断も行います。

主な機能

  1. 01ワークフローYAML構造の確認
  2. 02Facetの品質と責務分離を評価
  3. 03ルールやフローの問題を検出
  4. 04ログがある場合に実行記録を分析
  5. 05重大度別のMarkdownレポートを作成

活用シーン

  1. 01無効なステップ遷移の特定
  2. 02Facetのスタイル規約への適合確認
  3. 03実行ログからループの集中箇所を発見
  4. 04問題と改善案を整理

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/j5ik2o/ai-tools --skill takt-analyzer

インストール後、Claude Code で/takt-analyzerを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/takt/builtins/en/
config.yaml
references/takt/builtins/en/facets/instructions/
ai-antipattern-fix.md
ai-antipattern-review.md
arbitrate.md
architect.md
architecture-audit-plan.md
architecture-audit-review.md
architecture-audit-supervise.md
architecture-audit-team-leader.md
audit-security-plan.md
audit-security-review.md
audit-security-supervise.md
audit-security-team-leader.md
dual-team-leader-implement.md
e2e-audit-plan.md
e2e-audit-review.md
e2e-audit-supervise.md
e2e-audit-team-leader.md
e2e-coverage-implement.md
e2e-coverage-plan.md
e2e-coverage-supervise.md
fix-supervisor.md
fix.md
gather-review.md
implement-after-tests.md
implement-terraform.md
implement-test.md
implement.md
loop-monitor-ai-antipattern-fix.md
references/takt/builtins/en/facets/instructions/_system/
fallback-notice.md

詳細

プロジェクトの README より

TAKT Analyzer

既存のTAKTワークフローとファセットを分析し、問題点の検出と改善提案を行う。

前提 takt バージョン: v0.47.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/workflows/構造パターンの参照
ビルトインファセットreferences/takt/builtins/ja/facets/{personas,policies,instructions,knowledge,output-contracts}/ファセット品質の参照
ログ型定義references/takt/src/shared/utils/types.tsNDJSONレコード型の参照
プロバイダイベントreferences/takt/src/core/logging/providerEventLogger.ts*-provider-events.jsonl の構造
利用イベントreferences/takt/src/core/logging/usageEventLogger.ts利用量イベントの構造
span→NDJSONマッパーreferences/takt/src/core/logging/span-to-ndjson-mapper.tsOTel span 由来 shadow session log の構造(v0.44.0〜)
フェーズ利用イベントreferences/takt/src/core/logging/phaseUsageEvent.ts*-usage-events.phase.jsonl の PhaseUsageEventLogRecord 型(v0.45.0〜)
ルール評価references/takt/src/core/workflow/evaluation/RuleEvaluator.tsmatchedRuleMethod の仕組み(when: 決定論的条件含む)
トレース発見references/takt/src/core/workflow/observability/traceDiscovery.tsOTel span から WorkflowTraceDiscovery(タスクメタデータ含む)を構築するモジュール(v0.47.0〜)

takt-optimize との違い

観点takt-analyzetakt-optimize
目的問題検出・診断とレポート最適化の実行
出力分析レポート(Markdown)最適化済みファイル群
変更なし(読み取り専用)ファイルを直接編集・生成
入力ワークフローYAML + ファセット + 実行ログ同左
判断問題の重大度分類コスト/品質のトレードオフ判断

分析カテゴリ

1. ワークフロー構造分析

ワークフローYAMLの構造的な問題を検出する。

チェック項目:

チェック内容重大度
initial_step存在initial_stepがsteps配列内に存在するかCritical
遷移先の有効性全rules.nextが有効なステップ名 or COMPLETE/ABORTかCritical
loop健全遷移整合loop_monitors.cycle の健全時 next が cycle 先頭ノードと一致するかCritical
loop参照レポート範囲loop_monitors.judge.instruction の {report:...} が cycle 内 step 生成物のみかCritical
セクションマップ整合性セクションマップのキーとステップ内参照が一致するかCritical
ファイルパス存在セクションマップのパスが実在するかCritical
parallel構造親ルールがall()/any()を使用、サブステップにnextがないかWarning
edit=false + ビルド操作edit: false のステップのインストラクションがビルドコマンド(cargo check 等)の禁止を明示しているか。読み取り専用サンドボックスでビルドは Operation not permitted で失敗するWarning
supervise失敗の遷移先supervise の失敗ルールが plan に遷移していないか。修正可能な問題は fix へ遷移すべきで、supervise → plan は根本設計変更が必要な場合のみWarning
CI実行の責任配置supervise/ai_review 等の edit: false ステップのインストラクションがCIの直接実行を禁止し、fix/implement のレポート証跡確認のみを求めているかWarning
command quality gatequality_gates の type: command が agent step にだけ置かれ、config 側で workflow_command_gates.custom_scripts: true が有効化されているかWarning
provider_options構造allowed_tools がトップレベルではなく provider_options.claude.allowed_tools に配置されているか(v0.30.0〜)Warning
provider_options.$ref 廃止provider_options.$ref を使用していないか(v0.47.0〜)。extends に移行が必要Warning
provider_routing 移行persona_providers を使用していないか(v0.47.0〜非推奨)。provider_routing(personas/tags/steps 軸)を使用すべきWarning
edit権限edit: trueのステップに適切なrequired_permission_modeがあるかInfo
session設定実装系ステップにsession: refreshがあるかInfo
2. ファセット品質分析

各ファセットがスタイルガイドに準拠しているか確認する。

Persona チェック:

  • ロール定義が1-2文
  • 「やること」「やらないこと」に担当エージェント名
  • ポリシーの詳細ルール(コード例・テーブル)が混入していない
  • ワークフロー固有の概念(ステップ名等)がない
  • サイズ: simple 100行以内、expert 550行以内
  • ####以下のネストがない

Policy チェック:

  • 目的説明が1文
  • 原則テーブルが存在
  • 特定エージェント固有の知識がない
  • サイズ: 300行以内

Instruction チェック:

  • 冒頭が命令形
  • {task}, {previous_response}を手動記述していない
  • ペルソナ/ポリシーの内容が混入していない
  • サイズ: 種別に応じた上限内

Output Contract チェック:

  • ```markdownコードブロックで囲まれている
  • レビュー系にステータスと認知負荷軽減ルール
  • ファイル名に番号プレフィックスがない
  • サイズ: 30行以内
3. ファセット分離分析

ファセット間の責務が適切に分離されているか検出する。

違反パターン説明修正方向
ペルソナにポリシー詳細コード例・テーブル付きのルールがペルソナ内に→ ポリシーに移動
ペルソナにワークフロー概念ステップ名・レポートファイル名がペルソナ内に→ インストラクションに移動
ポリシーに固有知識特定エージェント固有の検出手法がポリシー内に→ ペルソナのドメイン知識に移動
インストラクションに原則共有コーディング原則がインストラクション内に→ ポリシーに移動
出力契約に手順実行手順が出力契約内に→ インストラクションに移動
4. ルール設計分析

ルール条件の設計を評価する。

チェック内容
タグ vs AI判定タグベース条件で対応可能な箇所でai()を使用していないか
aggregate使用parallelの親でall()/any()を使用しているか
到達不能ルールどの条件にも該当しないケースがないか
ループリスクfix→review等の循環にloop_monitorsがあるか
loop健全遷移各 loop monitor で「健全(進捗あり)」の next が cycle 先頭ノードか
loopレポート整合loop monitor が cycle 外 step 専用レポートを参照していないか
ABORT条件失敗時のABORT遷移が適切に定義されているか
5. ビルトイン活用分析

カスタムファセットがビルトインで代替可能か検出する。

手順:

  1. カスタムファセットの内容をビルトインファセットと比較
  2. 類似度が高い場合はビルトインへの置き換えを提案
  3. ビルトインのbare name参照とセクションマップ参照の混在を検出
6. ログベース診断分析

実行ログ(.takt/logs/*.jsonl)を解析し、動的な問題を検出する。ログがない場合はスキップする。

a) ログの場所と形式
  • .takt/logs/{sessionId}.jsonl(NDJSON形式: 1行1JSONオブジェクト)
  • .takt/logs/{sessionId}-provider-events.jsonl(プロバイダイベントログ、別ファイル)
  • .takt/logs/{sessionId}/trace.md(トレースレポート、Markdown形式)
  • .takt/logs/latest.json で最新セッションIDを参照

observability opt-in 出力(v0.44.0〜、observability.enabled: true が前提):

  • .takt/runs/<run>/monitor.json: run 単位のワークフローメトリクス(observability.monitor: true で出力)
  • OTel span 由来の shadow session log(observability.session_log_exporter: true で出力)。正規の NDJSON セッションログと同等の redaction が適用される
  • span はフェーズ実行と status-judgment(judge)フェーズもカバーする
  • .takt/runs/<run>/logs/<session>-usage-events.phase.jsonl: フェーズ粒度の provider 利用量イベント(observability.usage_events_phase: true で出力、v0.45.0〜)。PhaseUsageEventLogRecord 型の NDJSON。各フェーズ(phase1_execute / phase2_report / phase3_structured / phase3_tag / phase3_fallback)ごとに provider, provider_model, step, step_type, phase, usage を記録する。npm run analyze:usage コマンドで集計可能

OTLP エクスポート(v0.46.0〜、observability.enabled: true + OTEL_EXPORTER_OTLP_ENDPOINT が前提):

  • observability.enabled: true かつ OTEL_EXPORTER_OTLP_ENDPOINT 環境変数が設定されている場合、TAKT はローカル exporter を維持したまま span と metric を OTLP HTTP で送信する
  • OTEL_EXPORTER_OTLP_TRACES_ENDPOINT / OTEL_EXPORTER_OTLP_METRICS_ENDPOINT で個別 endpoint を上書き可能(base endpoint が設定されている場合のみ有効)
  • 各プロバイダー subprocess に W3C trace context を伝播するため、provider CLI の span が親 workflow trace の下にネストされる(v0.46.0 以前は detached trace)
  • 実行中 workflow を Grafana Tempo 等で発見しやすくする短命の workflow_start.<workflowName> span を送信(takt.workflow.status = running 属性を持つ。root / step / phase / judge span の置き換えではなく discovery 専用)
  • エクスポート実装の詳細は references/takt/docs/observability.ja.md を参照

NDJSONレコード型一覧:

type内容
workflow_startワークフロー実行の開始
step_startステップの開始
step_completeステップ完了(matchedRuleIndex, matchedRuleMethod を含む)
phase_startフェーズの開始
phase_completeフェーズ完了(error フィールドあり)
phase_judge_stageルール判定フェーズの段階記録(stage, method, status を含む)
workflow_completeワークフロー実行の正常完了(iterations を含む)
workflow_abortワークフロー実行の中断(reason を含む)
interactive_start / interactive_endインタラクティブモードの開始・終了

各レコード型の詳細フィールドは references/takt/src/shared/utils/types.ts を参照。

b) matchedRuleMethod

step_complete レコードの matchedRuleMethod は、ルール評価エンジンがどの手法でルールをマッチさせたかを示す。

評価順序(フォールバックチェーン):

1. aggregate     → all()/any() による並列サブステップ集約
2. phase3_tag    → Phase 3 出力からのタグ検出
3. phase1_tag    → Phase 1 出力からのタグ検出(フォールバック)
4. ai_judge      → ai() 条件のみをAI判定
5. ai_judge_fallback → 全条件をAI判定(最終フォールバック)

手法別の特性:

methodコスト信頼性説明
aggregateなし高並列サブステップの完了状態で判定
phase3_tagなし高出力テンプレートのタグで確定的に判定
phase1_tagなし中エージェント応答からタグ検出
ai_judgeAPI 1回中ai() 条件のみをAI判定
ai_judge_fallbackAPI 1回低全条件をAI判定(タグ検出失敗時)
auto_selectなし高ルールが1つのみの場合の自動選択
structured_outputなし高構造化出力による判定

ai_judge_fallback の頻度が高い場合、output-contract にタグ出力指示を追加すべき。 step_start には providerOptions / providerOptionsSources も入るため、期待と異なる provider / effort 解決の原因分析に使える。

c) 診断分析項目
分析方法重大度判定基準
ループホットスポット同一ステップの step_start 出現回数を集計閾値超え=Warning、loop_monitor 未設定=Critical
デッドルールmatchedRuleIndex の分布でマッチ0回のルールを検出Critical(到達不能コード)
ルール評価効率matchedRuleMethod の分布を集計。ai_judge_fallback の割合に注目>50%=Warning、>80%=Critical
ABORT率workflow_abort / workflow_complete の比率>30%=Warning、>50%=Critical
フェーズ別エラーphase_complete の error フィールドを集計同一フェーズで繰り返しエラー=Warning
イテレーション効率workflow_complete.iterations vs max_steps常に上限近く=Warning
d) 複数ログの統合分析ガイド
  • 3回以上: パターン確認に十分。統計的な傾向を報告する
  • 1回: 参考情報として扱い、静的分析を優先する
e) ログ診断レポート例
## ログ診断結果

### 分析対象
- セッション数: 5
- 期間: 2026-03-01 〜 2026-03-04

### ルール評価効率
| ステップ | phase3_tag | ai_judge | ai_judge_fallback | 改善優先度 |
|------------|-----------|---------|-------------------|----------|
| ai_review  | 20%       | 13%     | 67%               | 高       |
| supervise  | 80%       | 20%     | 0%                | -        |

### ループホットスポット
| サイクル | 最大連続回数 | loop_monitor | 状態 |
|---------|------------|-------------|------|
| review→fix | 6 | threshold: 3 | OK |
| implement→test | 4 | なし | Warning: loop_monitor未設定 |

### ABORT分析
- 成功: 4/5 (80%)
- ABORT: 1/5 (20%) - reason: "max_steps exceeded"

ワークフロー

Step 1: 対象の特定

分析対象のワークフローYAMLを特定し、実行ログの有無を確認する。

探索順序:
1. ユーザー指定のパス
2. ~/.takt/workflows/ 内のカスタムワークフロー
3. .takt/workflows/ 内のプロジェクトワークフロー

ログ確認:
- .takt/logs/ ディレクトリの存在確認
- ログあり → 静的分析 + ログ診断
- ログなし → 静的分析のみ(従来通り)
Step 2: ワークフローYAML解析

ワークフローYAMLを読み込み、構造分析を実施する。

  1. YAML構文の検証
  2. ステップ構成の確認
  3. ルール条件の型チェック
  4. セクションマップの参照解決
Step 3: ファセット読み込みと品質チェック

セクションマップとビルトイン参照から全ファセットを読み込み、スタイルガイドに照合する。

Step 3.5: ログ読み込みと診断(ログがある場合のみ)
  1. .takt/logs/latest.json から最新セッションIDを取得
  2. 対象の .jsonl ファイルを読み込み、NDJSONレコードを解析
  3. カテゴリ6の診断分析項目に従い、各指標を算出
  4. 複数ログがある場合は統合分析を実施
Step 4: 分離分析

ファセット間の責務侵犯を検出する。

Step 5: レポート出力
# TAKT分析レポート: {ワークフロー名}

## サマリー
- Critical: {N件}
- Warning: {N件}
- Info: {N件}

## Critical(必須修正)
| # | カテゴリ | 場所 | 問題 |
|---|---------|------|------|

## Warning(推奨修正)
| # | カテゴリ | 場所 | 問題 | 改善案 |
|---|---------|------|------|--------|

## Info(改善提案)
| # | カテゴリ | 場所 | 提案 |
|---|---------|------|------|

## ビルトイン活用の提案
{カスタムファセットのビルトイン置き換え提案}

## ログ診断結果(ログ提供時のみ)
{ログベース診断のサマリー}

コメント