mcpField
T
takt-analyzer

takt-analyzer

github.com/j5ik2oAgent 工作流2881 次安装13 周前更新
代码仓库

关于 takt-analyzer

takt-analyzer 是用于诊断现有 TAKT 工作流及 Facet 的只读技能,面向需要检查配置和运行表现的维护者。它按严重程度生成 Markdown 报告,并可在有执行日志时补充日志诊断。

主要功能

  1. 01检查工作流 YAML 结构
  2. 02评估 Facet 质量与职责分离
  3. 03识别规则和流程问题
  4. 04有日志时分析运行记录
  5. 05生成分级 Markdown 报告

适用场景

  1. 01排查无效的工作流步骤跳转
  2. 02检查 Facet 是否符合风格规范
  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(改善提案)
| # | カテゴリ | 場所 | 提案 |
|---|---------|------|------|

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

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

评论

支持 Markdown