flow-deliver について
flow-deliver は、Claude Octopus ワークフローでコードやドキュメントを検証する Codex CLI 向けスキルです。レビューの種類を判定し、複数プロバイダーによる検証を実行して、レポートを確認しプロジェクト状態を更新します。
主な機能
- 01コードまたは文書のレビュー種別を判定
- 02コードの種類に応じた検証基準を選択
- 03複数プロバイダーによる検証
- 04レポートの確認とプロジェクト状態の更新
- 05検証概要を PR に投稿可能
活用シーン
- 01実装の品質とセキュリティのレビュー
- 02レポートの明瞭さと網羅性の確認
- 03プルリクエスト向け検証結果の整理
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nyldn/ claude-octopus --skill flow-deliverインストール後、Claude Code で/flow-deliverを入力して読み込まれたか確認します。
同梱ファイルagents/openai.yaml
詳細
ホスト:Codex CLI — このスキルはClaude Code向けに設計され、Codex向けに調整されています。 相互参照するコマンドでは、
/octo:*スラッシュコマンドではなく、Codexにインストールされたスキル名を使用します。 アクティブなCodexシェルとサブエージェントツールを使用してください。現在のセッションで利用可能であることが確認できるまでは、プロバイダー、モデル、ホストのサブエージェントが利用可能だと主張しないでください。 ホストツールに相当するものについては、skills/blocks/codex-host-adapter.mdを参照してください。
{{PREAMBLE}}
納品前:状態の確認
納品を開始する前に:
.octo/STATE.mdを読み、Developフェーズが完了していることを確認します- STATE.mdを更新します:
- current_phase: 4
- phase_position: "Delivery"
- status: "in_progress"
# Verify Develop phase is complete
if [[ -f ".octo/STATE.md" ]]; then
develop_status=$("${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" get_phase_status 3)
if [[ "$develop_status" != "complete" ]]; then
echo "⚠️ Warning: Develop phase not marked complete. Consider completing development first."
fi
fi
# Update state for Delivery phase
"${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" update_state \
--phase 4 \
--position "Delivery" \
--status "in_progress"
⚠️ 実行規約(必須 — 省略不可)
このスキルでは強制実行モードを使用します。必ず次の手順に従ってください。
ステップ1:作業コンテキストの検出(必須)
ユーザーのプロンプトとプロジェクトを分析し、コンテキストを判断します。
ナレッジコンテキストの指標:
- ドキュメント関連用語:「report」、「presentation」、「PRD」、「proposal」、「document」、「brief」
- 品質関連用語:「argument」、「evidence」、「clarity」、「completeness」、「narrative」
開発コンテキストの指標:
- コード関連用語:「code」、「implementation」、「API」、「endpoint」、「function」、「module」
- 品質関連用語:「security」、「performance」、「tests」、「coverage」、「bugs」
併せて確認:何をレビューするのか。コードファイルなら開発、ドキュメントならナレッジです。
context_type = "Dev" または "Knowledge" を記録します
ステップ1b:開発サブタイプの検出(開発コンテキストの場合)
context_typeがDevの場合、レビュー用プロンプトにドメインに適した検証基準を追加するため、サブタイプを判定します。ステップ4でorchestrate.shを呼び出す際に、ユーザーのプロンプトの後に該当する検証補足を追加します。
| サブタイプ | トリガーキーワード | 検証補足 |
|---|---|---|
frontend-ui | "page"、"widget"、"component"、"UI"、"HTML"、"CSS"、"form"、"dashboard"、"layout" | 確認:参照されているファイル(スクリプト、スタイルシート、画像)がすべて存在すること。ARIAラベルとロール、キーボード操作の可否、タッチターゲットのサイズ(最小44px)を確認します。innerHTMLの使用を指摘します。プログレッシブエンハンスメント(navigator.share、localStorageなどのフォールバック)を確認します。自己完結性をテストします。セットアップなしで開く/実行しても動作しますか? |
cli-tool | "CLI"、"command-line"、"terminal"、"script"、"flag"、"argument" | 確認:--helpフラグが動作すること。終了コードに意味があること(0/1/2)。stderrとstdoutが適切に使い分けられていること。引数のエッジケース(引数不足、無効な入力、--unknown-flag)に対応していること。 |
api-service | "API"、"endpoint"、"REST"、"GraphQL"、"gRPC"、"server"、"route" | 確認:各エンドポイントで入力が検証されていること。一貫したエラー応答形式であること。保護されたルートに認証があること。レート制限が考慮されていること。スキーマ/コントラクトが文書化されていること。 |
infra | "deploy"、"terraform"、"docker"、"CI"、"pipeline"、"Kubernetes"、"helm" | 確認:操作が冪等であること。シークレットがハードコードされていないこと。ロールバック手段があること。ヘルスチェックが含まれていること。破棄操作には確認を必要とすること。 |
data | "ETL"、"pipeline"、"migration"、"schema"、"database"、"SQL" | 確認:マイグレーションを元に戻せること。データ取り込み時にデータが検証されること。バックアップ戦略が文書化されていること。失敗時にデータが失われないこと。 |
general | 一致するサブタイプがない場合のデフォルト | 補足なし — 標準のレビュー基準を使用します。 |
適用方法: ステップ4でorchestrate.shを呼び出す際に、検証補足を追加します:
orchestrate.sh deliver "<user prompt>\n\nDomain-specific validation criteria:\n<supplement text>"
コンテキストが判断できるまで、ステップ2に進まないでください。 コンテキストタイプ(DevかKnowledgeか)と開発サブタイプによって、追加する検証補足が決まります。コンテキストを誤ると、無関係な基準を確認するレビューになってしまいます。
STEP 2: 視覚的なインジケーターを表示する(必須 - ブロッキング)
必須:バナーを表示する前に、ネイティブのシェルコマンドツールを使用して、このプロバイダーチェックを実行する必要があります。省略したり、利用可能であると決めつけたりしないでください。
bash "${HOME}/.claude-octopus/plugin/scripts/helpers/check-providers.sh"
以下の実際の結果を使用してください。禁止事項:すべてのプロバイダーを列挙せず、「🔵 Claude: Available ✓」のみを表示すること。
OCTO_ALLOWED_PROVIDERS が設定されている場合、参加可能なプロバイダーの信頼できる情報源として扱ってください。許可リストによって除外されたプロバイダーは意図的に利用不可と報告されています。ワークフロー内でそれらを呼び出したり、推奨したりしないでください。
orchestrate.sh を実行する前に、このバナーを表示してください:
開発コンテキストの場合:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Dev] Deliver Phase: [Brief description of code review]
Provider Availability:
🔴 Codex CLI: [Available ✓ / Not installed ✗] - Code quality analysis
🟡 Antigravity CLI: [Available ✓ / Not installed ✗] - Security and edge cases
🧭 Antigravity CLI: [Available ✓ / Not installed ✗] - Additional external-model challenge
🔵 Claude: Available ✓ - Synthesis and recommendations
💰 Estimated Cost: 0.02-0.08 USD
⏱️ Estimated Time: 3-7 minutes
ナレッジコンテキストの場合:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Knowledge] Deliver Phase: [Brief description of document review]
Provider Availability:
🔴 Codex CLI: [Available ✓ / Not installed ✗] - Structure and logic analysis
🟡 Antigravity CLI: [Available ✓ / Not installed ✗] - Content quality and completeness
🧭 Antigravity CLI: [Available ✓ / Not installed ✗] - Additional external-model challenge
🔵 Claude: Available ✓ - Synthesis and recommendations
💰 Estimated Cost: 0.02-0.08 USD
⏱️ Estimated Time: 3-7 minutes
バナーを表示するまで、STEP 3 に進まないでください。 バナーには、実行されるプロバイダーと発生するコストがユーザーに示されます。この可視性なしに API 呼び出しを開始することは、コストの透明性に反します。
STEP 3: 以前の状態を読み込む(必須 - 状態管理)
ワークフローを実行する前に、プロジェクトのコンテキスト全体を読み込んでください:
# Initialize state if needed
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" init_state
# Set current workflow
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" set_current_workflow "flow-deliver" "deliver"
# Get all prior decisions (critical for validation)
prior_decisions=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_decisions "all")
# Get context from all prior phases
discover_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "discover")
define_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "define")
develop_context=$("${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" get_context "develop")
# Display what you found (validation needs full context)
echo "📋 Validation Context Summary:"
if [[ "$discover_context" != "null" ]]; then
echo " Discovery: $discover_context"
fi
if [[ "$define_context" != "null" ]]; then
echo " Definition: $define_context"
fi
if [[ "$develop_context" != "null" ]]; then
echo " Development: $develop_context"
fi
if [[ "$prior_decisions" != "[]" && "$prior_decisions" != "null" ]]; then
echo " Decisions to validate against:"
echo "$prior_decisions" | jq -r '.[] | " - \(.decision) (\(.phase))"'
fi
これにより、検証に必要なコンテキスト全体が得られます:
- 要件と範囲(定義フェーズから)
- 実装上の決定事項(開発フェーズから)
- 調査結果(発見フェーズから)
- 検証対象となるすべてのアーキテクチャ上の決定事項
- claude-mem がインストールされている場合、その MCP ツール(
search、timeline、get_observations)を利用できます。過去の納品時の問題や品質パターンを確認するために使用してください。
状態を読み込むまで、STEP 4 に進まないでください。
STEP 4: orchestrate.sh deliver を実行する(必須 - Bash ツールを使用)
このコマンドは、ネイティブのシェルコマンドツールを使用して実行する必要があります:
${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "<user's validation request>"
重要:次の行為は禁止されています:
- ❌ orchestrate.sh を呼び出さずに直接レビューすること — 複数の AI による敵対的レビューでは、単独のレビュアーが見逃す盲点を発見できます。Codex はコード品質の問題を見つけ、Antigravity はセキュリティとエッジケースを検出します。
- ❌ 複数プロバイダーを使わず、単一の視点で分析すること
- ❌ ワークフローを「シミュレート」していると主張すること
- ❌ このコマンドを実行せずに STEP 4 に進むこと
orchestrate.sh の呼び出しには、ネイティブのシェルコマンドツールを必ず使用してください。
実行中にユーザーに表示される内容(v7.16.0 以降)
Claude Code v2.1.16 以降で実行している場合、タスクスピナーにリアルタイムの進行状況インジケーターが表示されます:
フェーズ 1 - 外部プロバイダーによる実行(並列):
- 🔴 コード品質とパターンを分析中(Codex)...
- 🟡 セキュリティとエッジケースを検証中(Antigravity)...
フェーズ 2 - 統合(逐次):
- 🔵 検証結果を統合中...
これらのスピナーの動詞の更新は自動的に行われます。orchestrate.sh は、各エージェントの実行前に update_task_progress() を呼び出します。ユーザーには、どのプロバイダーが作業していて、何を行っているのかが正確に表示されます。
Claude Code v2.1.16 以降で実行していない場合: 進行状況インジケーターは通知なしでスキップされ、エラーも表示されません。
STEP 5: 実行を検証する(必須 - 検証ゲート)
orchestrate.sh の完了後、正常に実行されたことを確認してください:
# Find the latest validation file (created within last 10 minutes)
VALIDATION_FILE=$(find ~/.claude-octopus/results -name "ink-validation-*.md" -mmin -10 2>/dev/null | head -n1)
if [[ -z "$VALIDATION_FILE" ]]; then
echo "❌ VALIDATION FAILED: No validation file found"
echo "orchestrate.sh did not execute properly"
exit 1
fi
echo "✅ VALIDATION PASSED: $VALIDATION_FILE"
cat "$VALIDATION_FILE"
検証に失敗した場合:
- ユーザーにエラーを報告する
~/.claude-octopus/logs/のログを表示する- 結果の提示に進まない
- 直接レビューで代用しない — 単一モデルのレビューへのフォールバックでは、盲点を見つける敵対的な複数プロバイダー検証の目的が失われます。
STEP 6: 状態を更新する(必須 - 実行後)
検証の完了後、最終メトリクスを記録してください:
# Update deliver phase context with validation summary
validation_summary=$(head -30 "$VALIDATION_FILE" | grep -A 2 "## Summary\|Pass\|Fail" | tail -2 | tr '\n' ' ')
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" update_context \
"deliver" \
"$validation_summary"
# Update final metrics (completion of full workflow)
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" update_metrics "phases_completed" "1"
# Display final state summary
echo ""
echo "📊 Session Complete - Final Metrics:"
"${HOME}/.claude-octopus/plugin/scripts/state-manager.sh" show_summary
状態を更新するまで、STEP 7 に進まないでください。
STEP 7: 検証レポートを提示し、PR に投稿する(STEP 1~6 の完了後のみ)
検証ファイルを読み込み、次の内容を提示してください:
- 全体のステータス(✅ 合格 / ⚠️ 警告付きで合格 / ❌ 不合格)
- 品質スコア(XX/100)
- 概要
- 重大な問題(修正必須)
- 警告(修正を推奨)
- 推奨事項(あると望ましい)
- すべてのプロバイダーによる検証の詳細
- 品質ゲートの結果
- 次のステップ
帰属情報を含めてください:
*Multi-AI Validation powered by Claude Octopus*
*Providers: available external providers + 🔵 Claude*
*Full validation report: $VALIDATION_FILE*
PR に投稿(v8.44.0)
レポートを提示した後、現在のブランチにオープンな PR があるか確認し、検証の概要を PR コメントとして投稿します。
CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")
PR_NUM=""
if [[ -n "$CURRENT_BRANCH" && "$CURRENT_BRANCH" != "main" && "$CURRENT_BRANCH" != "master" ]]; then
if command -v gh &>/dev/null; then
PR_NUM=$(gh pr list --head "$CURRENT_BRANCH" --json number --jq '.[0].number' 2>/dev/null || echo "")
fi
fi
if [[ -n "$PR_NUM" ]]; then
# Extract summary section from validation file for PR comment
REVIEW_SUMMARY=$(head -60 "$VALIDATION_FILE")
REPO_SLUG=$(gh repo view --json nameWithOwner --jq .nameWithOwner)
COMMENT_BODY="## Deliver Phase — Validation Report
${REVIEW_SUMMARY}
___
*Multi-AI validation by Claude Octopus (/octo:deliver)*
*Providers: available external providers + 🔵 Claude*"
if ! "${CLAUDE_PLUGIN_ROOT:-${HOME}/.claude-octopus/plugin}/scripts/safe-gh-comment.sh" \
--repo "$REPO_SLUG" pr-comment "$PR_NUM" - <<< "$COMMENT_BODY"; then
echo "GitHub write state is unknown; check for the validation report before retrying:" >&2
gh pr view "$PR_NUM" --repo "$REPO_SLUG" --comments || true
return 1 2>/dev/null || exit 1
fi
echo "Validation report posted to PR #${PR_NUM}"
# Update agent registry
REGISTRY="${HOME}/.claude-octopus/plugin/scripts/agent-registry.sh"
if [[ -x "$REGISTRY" ]]; then
AGENT_ID="$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "")"
"$REGISTRY" update "$AGENT_ID" --pr "$PR_NUM" 2>/dev/null || true
fi
fi
動作:
/octo:embraceまたは/octo:factoryの実行中は自動的に投稿します/octo:deliverを単独で実行する場合は、まずユーザーに確認します。"PR #N found. Post validation report as a PR comment?" Options: "Yes, post to PR", "No, terminal only"- PR がない場合、または
ghCLI が利用できない場合は、何も通知せずにスキップします
Deliver ワークフロー - Deliver フェーズ ✅
⚠️ 必須:コンテキスト検出と視覚的インジケーター
ワークフローのアクションを実行する前に、必ず次の手順を行ってください。
Step 1: 作業コンテキストを検出する
ユーザーのプロンプトとプロジェクトを分析して、コンテキストを判断します。
ナレッジコンテキストのインジケーター(プロンプト内):
- ドキュメント関連の用語:「report」「presentation」「PRD」「proposal」「document」「brief」
- 品質関連の用語:「argument」「evidence」「clarity」「completeness」「narrative」
開発コンテキストのインジケーター(プロンプト内):
- コード関連の用語:「code」「implementation」「API」「endpoint」「function」「module」
- 品質関連の用語:「security」「performance」「tests」「coverage」「bugs」
さらに確認すること:レビュー対象は何か?コードファイルなら開発、ドキュメントならナレッジです。
Step 1b: 開発サブタイプを検出する — サブタイプの表と検証用補足については、上記の EXECUTION CONTRACT Step 1b を参照してください。orchestrate.sh を呼び出す前に、一致する補足をプロンプトに追加します。
Step 2: コンテキストに応じたバナーを出力する
開発コンテキストの場合:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Dev] Deliver Phase: [Brief description of code review]
📋 Session: ${CLAUDE_SESSION_ID}
Providers:
🔴 Codex CLI - Code quality analysis
🟡 Antigravity CLI - Security and edge cases
🔵 Claude - Synthesis and recommendations
ナレッジコンテキストの場合:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation mode
✅ [Knowledge] Deliver Phase: [Brief description of document review]
📋 Session: ${CLAUDE_SESSION_ID}
Providers:
🔴 Codex CLI - Structure and logic analysis
🟡 Antigravity CLI - Content quality and completeness
🔵 Claude - Synthesis and recommendations
{{VISUAL_INDICATORS}}
Double Diamond の一部:DELIVER(収束思考)
DELIVER (ink)
\ /
\ /
\ /
\ /
\ /
Converge to
delivery
このワークフローで行うこと
deliver フェーズでは、外部 CLI プロバイダーを使用して実装を検証・レビューします。
- 🔴 Codex CLI - コード品質、ベストプラクティス、技術的な正確性
- 🟡 Antigravity CLI - セキュリティ監査、エッジケース、ユーザーエクスペリエンス
- 🔵 Claude(あなた) - 結果の統合と最終検証レポート
これはデリバリーにおける収束フェーズです。リリース前に品質を確保します。
Deliver を使用するタイミング
次のような場合に deliver を使用します。
開発コンテキストの例
- コードレビュー:「認証の実装をレビューしてください」
- セキュリティ監査:「auth.ts にセキュリティ脆弱性がないか確認してください」
- 品質検証:「API エンドポイントが本番環境で使用可能か検証してください」
- 実装の検証:「キャッシュレイヤーが正しく動作することを確認してください」
- デプロイ前の確認:「この機能がリリース可能であることを確認してください」
ナレッジコンテキストの例
- ドキュメントレビュー:「PRD に不足がないかレビューしてください」
- プレゼンテーションの検証:「経営陣向けプレゼンテーションが明確か確認してください」
- レポートの品質確認:「市場分析レポートを検証してください」
- 提案のレビュー:「ビジネスケースがステークホルダーに提示できる状態かレビューしてください」
- コンテンツ監査:「戦略文書が実行可能な内容であることを確認してください」
次の場合は deliver を使用しないでください。
- 実装を構築する場合(develop-workflow を使用)
- 調査や探索を行う場合(discover-workflow を使用)
- 要件を定義する場合(define-workflow を使用)
- コードやドキュメントを単に読む場合(Read ツールを使用)
視覚的インジケーター
実行前に、次の内容が表示されます。
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Reviewing and validating implementation
Providers:
🔴 Codex CLI - Code quality and best practices
🟡 Antigravity CLI - Security and edge cases
🔵 Claude - Synthesis and validation report
仕組み
Step 1: Ink フェーズを呼び出す
${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "<user's validation request>"
Step 2: 複数プロバイダーによる検証
orchestrate.sh スクリプトは次の処理を行います。
- Codex CLI を呼び出してコード品質を分析します
- Antigravity CLI を呼び出してセキュリティとエッジケースをレビューします
- あなた(Claude)が結果を統合して検証レポートを作成します
- 品質スコアと推奨事項を生成します
Step 3: 品質ゲート(自動)
Ink フェーズには、PostToolUse フックによる自動品質検証が含まれます。
- コード品質:複雑さ、保守性、ドキュメント
- セキュリティ:OWASP トップ 10、認証、入力検証
- ベストプラクティス:エラー処理、ロギング、テスト
- 完全性:不足している機能、エッジケース
Step 4: 結果を読む
結果は次の場所に保存されます。
~/.claude-octopus/results/${SESSION_ID}/ink-validation-<timestamp>.md
Step 5: 検証レポートを提示する
統合結果を読み、品質スコアとともに調査結果をユーザーに提示します。
実装手順
このスキルが呼び出されたら、上記の実行契約に厳密に従ってください。契約には次の内容が含まれます。
- ブロッキングステップ 1:作業コンテキスト(Dev または Knowledge)を検出する
- ブロッキングステップ 2:プロバイダーを確認し、視覚的なインジケーターを表示する
- ブロッキングステップ 3:ネイティブのシェルコマンドツールを使って orchestrate.sh deliver を実行する
- ブロッキングステップ 4:検証ファイルが存在することを確認する
- ステップ 5:書式設定された検証レポートを提示する
各ステップは必須のブロッキングステップです。現在のステップが正常に完了するまで、次のステップに進むことはできません。
タスク管理との連携
実行の進捗を追跡するため、タスクを作成します。
// At start of skill execution
TaskCreate({
subject: "Execute deliver workflow with multi-AI providers",
description: "Run orchestrate.sh deliver for validation",
activeForm: "Running multi-AI deliver workflow"
})
// Mark in_progress when calling orchestrate.sh
TaskUpdate({taskId: "...", status: "in_progress"})
// Mark completed ONLY after validation report presented
TaskUpdate({taskId: "...", status: "completed"})
エラー処理
いずれかのステップが失敗した場合:
- ステップ 1(コンテキスト):判断が曖昧な場合は、デフォルトで Dev コンテキストを使用する
- ステップ 2(プロバイダー):外部プロバイダーがすべて利用できない場合は、
/octo:setupを提案して停止する - ステップ 3(orchestrate.sh):bash のエラーを表示し、ログを確認して、ユーザーに報告する
- ステップ 4(検証):検証ファイルが見つからない場合は、orchestrate.sh のログを表示する。直接レビューで代用しない
orchestrate.sh の実行に失敗した場合、直接レビューに切り替えてはいけません。失敗を報告し、今後の対応はユーザーに判断してもらってください。
検証レポートの形式
実行が正常に完了したら、次の内容で検証レポートを提示します。
# Validation Report: <task>
## Overall Status: ✅ PASSED / ⚠️ PASSED WITH WARNINGS / ❌ FAILED
**Quality Score**: XX/100
## Summary
[Brief summary of validation findings]
## Critical Issues (Must Fix)
- [ ] Issue 1: [Description]
- [ ] Issue 2: [Description]
## Warnings (Should Fix)
- [ ] Warning 1: [Description]
- [ ] Warning 2: [Description]
## Recommendations (Nice to Have)
- [ ] Recommendation 1: [Description]
- [ ] Recommendation 2: [Description]
## Validation Details
### Code Quality (Codex Analysis)
**Score**: XX/100
- [Specific findings about code quality]
- [Best practice violations]
- [Improvement suggestions]
### Security Audit (Antigravity Analysis)
**Score**: XX/100
- [Security vulnerabilities found]
- [Authentication/authorization issues]
- [Input validation concerns]
### Final Validation (Claude Synthesis)
**Score**: XX/100
- [Integrated assessment]
- [Risk analysis]
- [Go/no-go recommendation]
## Quality Gates
- [X] Code Quality: XX/100 (PASSED/FAILED)
- [X] Security: XX/100 (PASSED/FAILED)
- [X] Best Practices: XX/100 (PASSED/FAILED)
- [X] Completeness: XX/100 (PASSED/FAILED)
## Next Steps
[Recommended actions based on findings]
Full validation report saved to: <validation file path>
使用例
例 1:認証の実装をレビューする
User: Review the authentication implementation in src/auth/
Claude:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Reviewing authentication implementation
[Executes: ${HOME}/.claude-octopus/plugin/scripts/orchestrate.sh deliver "Review authentication implementation in src/auth/"]
[After completion, reads validation and presents:]
# Validation Report: Authentication Implementation
## Overall Status: ⚠️ PASSED WITH WARNINGS
**Quality Score**: 78/100
## Summary
The authentication implementation is functional and follows most best practices, but has security concerns with token storage and missing rate limiting. Code quality is good with TypeScript types and error handling. Recommend addressing security warnings before production deployment.
## Critical Issues (Must Fix)
- [ ] **Security**: JWT secret is hardcoded in auth/config.ts (should use env variable)
- [ ] **Security**: No rate limiting on /login endpoint (vulnerability to brute force)
## Warnings (Should Fix)
- [ ] **Best Practice**: Password validation regex could be stronger (min 12 chars, special chars)
- [ ] **Testing**: Missing unit tests for token refresh logic
- [ ] **Error Handling**: Generic error messages leak whether email exists (account enumeration)
## Recommendations (Nice to Have)
- [ ] **UX**: Add "remember me" functionality for longer sessions
- [ ] **Monitoring**: Add logging for failed login attempts
- [ ] **Documentation**: Add JSDoc comments for public API methods
## Validation Details
### Code Quality (Codex Analysis)
**Score**: 85/100
**Strengths**:
- Clean TypeScript with proper types
- Good separation of concerns (controller/service/middleware)
- Proper async/await error handling
- Express middleware pattern used correctly
**Issues**:
- Missing JSDoc documentation
- Some functions exceed 50 lines (refactor recommended)
- No unit tests for edge cases
**Code Examples**:
\`\`\`typescript
// Good: Proper error handling
try {
const token = jwt.sign(payload, JWT_SECRET, { expiresIn: '15m' });
return token;
} catch (error) {
logger.error('Token generation failed', error);
throw new AuthError('Failed to generate token');
}
// Issue: Hardcoded secret (security risk)
const JWT_SECRET = 'my-secret-key-123'; // Should be process.env.JWT_SECRET
\`\`\`
### Security Audit (Antigravity Analysis)
**Score**: 68/100
**Critical Vulnerabilities**:
- ❌ Hardcoded JWT secret (HIGH severity)
- ❌ No rate limiting on auth endpoints (MEDIUM severity)
- ❌ Account enumeration via error messages (MEDIUM severity)
**Good Security Practices**:
- ✅ bcrypt password hashing with 12 rounds
- ✅ JWT tokens with short expiration (15min)
- ✅ Refresh token rotation implemented
- ✅ HTTPS-only cookies for token storage
**Recommendations**:
- Use environment variables for secrets
- Add express-rate-limit middleware
- Standardize error messages ("Invalid credentials" for all auth failures)
- Consider adding 2FA hooks for future enhancement
### Final Validation (Claude Synthesis)
**Score**: 78/100
**Risk Assessment**:
- **High**: Hardcoded secrets must be fixed before production
- **Medium**: Rate limiting should be added (prevents abuse)
- **Low**: Missing tests and docs can be addressed post-launch
**Go/No-Go Recommendation**:
- ⚠️ **CONDITIONAL GO**: Fix critical security issues, then ready for production
- Timeline: 2-4 hours to address critical issues
- Post-launch: Address warnings and recommendations in next sprint
**Architecture Assessment**:
- Good: Follows Express.js patterns, scalable design
- Good: Proper separation of concerns
- Improve: Add integration tests for full auth flow
## Quality Gates
- [X] Code Quality: 85/100 ✅ PASSED
- [X] Security: 68/100 ⚠️ WARNING (below 75 threshold)
- [X] Best Practices: 80/100 ✅ PASSED
- [X] Completeness: 75/100 ✅ PASSED (minimum viable)
## Next Steps
1. **Immediate (Before Deploy)**:
- Fix hardcoded JWT secret -> use process.env.JWT_SECRET
- Add rate limiting -> npm install express-rate-limit
- Standardize error messages -> update auth/controller.ts
2. **Short Term (Next Sprint)**:
- Add unit tests for auth service
- Improve password validation
- Add JSDoc documentation
3. **Long Term (Future)**:
- Add 2FA support
- Implement "remember me" functionality
- Add comprehensive logging and monitoring
Full validation report saved to: ~/.claude-octopus/results/abc-123/ink-validation-20250118-145600.md
例 2:API エンドポイントを検証する
User: Validate the new API endpoints are ready to ship
Claude:
🐙 **CLAUDE OCTOPUS ACTIVATED** - Multi-provider validation
✅ Deliver Phase: Validating API endpoints
[Executes ink workflow]
[Presents detailed validation with:]
- API contract compliance (OpenAPI/Swagger)
- Error handling coverage
- Security (auth, input validation)
- Performance (query optimization)
- Documentation completeness
[Provides go/no-go decision with quality scores]
品質ゲートとの連携
ink フェーズでは、.claude/hooks/quality-gate.sh を通じて包括的な品質チェックが自動的に実行されます。
# Triggered after ink execution (PostToolUse hook)
./hooks/quality-gate.sh
v8.49.0:プロジェクト固有の lint/typecheck(品質スコアの算出前):
概念的な品質ゲートを実行する前に、プロジェクトで実際に使用されている lint/typecheck コマンドを検出して実行します。
package.jsonでlint、typecheck、tsc、checkスクリプトを確認するruff、mypy、cargo clippy、go vet、make lintを確認する- 品質ゲートのスコアと併せて、合格/不合格の結果を報告する
- 品質コマンドが見つかったものの CLAUDE.md に記載されていない場合は、追加を提案する
{{QUALITY_GATES}}
他のワークフローとの連携
Ink は Double Diamond の最終フェーズです。
PROBE (Discover) → GRASP (Define) → TANGLE (Develop) → INK (Deliver)
ワークフローの全体例:
- Probe:「認証のベストプラクティスを調査する」-> 選択肢を見つける
- Grasp:「認証要件を定義する」-> 具体的なニーズに絞り込む
- Tangle:「JWT 認証を実装する」-> ソリューションを構築する
- Ink:「認証の実装を検証する」-> リリース前に品質を確保する
既存のコードの検証には、Ink を単独で使用することもできます。
検証チェックリスト
検証を完了とする前に、次の項目を確認してください。
- すべてのプロバイダーが分析を完了している
- すべての評価項目について品質スコアが算出されている
- 重大な問題が特定され、記録されている
- 警告と推奨事項が提示されている
- Go/No-Go の判断が明確に示されている
- ユーザー向けの次のステップが記載されている
- 検証レポートの全内容が共有されている
コストへの配慮
外部 API の使用:
- 🔴 Codex CLI はお使いの OPENAI_API_KEY を使用します(費用が発生します)
- 🟡 Antigravity CLI はお使いの AGY_AUTH_TOKEN を使用します(費用が発生します)
- 🔵 Claude の分析は Claude Code に含まれています
Ink のワークフローでは、通常、コードベースの規模と複雑さに応じて、検証 1 回あたり 0.02~0.08 USD の費用がかかります。
検証後: ドキュメント同期
検証が成功した(go 判断)後、ドキュメント同期を実行してプロジェクトのドキュメントを出荷済みコードと一致させます。この手順は、/octo:embrace の一部として実行する場合は自動で、単独で実行する場合は提案されます。
配信が明示的に要求された後に doc-sync ソースを読み込みます:
Read ${HOME}/.claude-octopus/plugin/.claude/skills/skill-doc-sync/SKILL.md and execute it for "sync docs for the changes on this branch"
doc-sync スキルは以下を実行します:
- すべての
.mdファイルを読み取る(最大深さ 2、最大 30 ファイル) - 各ファイルを
git diffと照合して古い内容を特定する - 事実の修正(パス、数、バージョン番号)を自動更新する
- リスクのある変更や叙述的な変更については編集前に確認する
- ドキュメント間の一貫性と発見可能性をチェックする
- ドキュメントの変更をブランチにコミットする
スキップ条件: 次の場合、doc-sync をスキップします:
- プロジェクトに
.mdファイルが存在しない - 検証結果が「no-go」だった(先にコードを修正)
- ユーザーが明示的にスキップを要求した(
--no-docs、または確認時に辞退した)
配信後: 出荷へのルーティング
配信の検証と doc-sync が完了したら、ユーザーの明示的な要求に従って ルーティングします:
- 出荷が要求された場合:
.octo/STATE.mdを更新し、安定したプラグインルートから.claude/skills/skill-ship/SKILL.mdを読み込んで従います。 - ブランチの締めくくりが要求された場合: 安定したプラグインルートから
.claude/skills/skill-finish-branch/SKILL.mdを読み込んで従います。 - レビューのみの場合: 統合された所見を配信して停止します。プロジェクトを 出荷可能な状態に更新したり、出荷の指示を表示したりしないでください。
# Run this block only when the user explicitly requested shipping.
"${HOME}/.claude-octopus/plugin/scripts/octo-state.sh" update_state \
--status "complete" \
--history "All phases complete, ready to ship"
# Display completion message with next steps
echo ""
echo "🎉 **EMBRACE WORKFLOW COMPLETE**"
echo ""
echo "All four phases have been completed:"
echo " ✅ Discover - Research and exploration"
echo " ✅ Define - Requirements and scope"
echo " ✅ Develop - Implementation"
echo " ✅ Deliver - Validation and quality"
echo ""
echo "📦 **Project ready! Run \`/octo:ship\` to finalize and archive.**"
そのブロックが成功した後、要求された最終処理を直ちに実行します:
Read ${HOME}/.claude-octopus/plugin/.claude/skills/skill-ship/SKILL.md and execute it for "finalize and archive the validated project"
コマンドを表示しただけで停止しないでください。明示的な出荷ワークフローが実際に 実行されるまで、出荷が要求されたブランチは未完了です。
終了状態
Deliver フェーズは、検証の所見が統合され、必須修正項目が解決されるか
ユーザーによって明示的に受け入れられた場合にのみ完了します。ユーザーが
ブランチの出荷または締めくくりを要求した場合は、skill-ship を読み込んで実行します
(テスト、PR、マージの場合は skill-finish-branch)。レビューのみの要求の場合は、所見を配信して停止します。ユーザーの承認なしに
要求を出荷作業へ拡大しないでください。
検証の準備ができました! このスキルは明示的に呼び出された後にのみ実行されます。