{"id":49485298,"url":"https://github.com/satoh-y-0323/claude-code-conductor","last_synced_at":"2026-07-07T05:00:26.876Z","repository":{"id":354881776,"uuid":"1223482203","full_name":"satoh-y-0323/claude-code-conductor","owner":"satoh-y-0323","description":"複数エージェントのオーケストレーションを中心に据えた Claude Code フレームワーク。","archived":false,"fork":false,"pushed_at":"2026-07-03T04:43:34.000Z","size":3296,"stargazers_count":1,"open_issues_count":2,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-07-03T06:25:05.945Z","etag":null,"topics":["claude-code","framework","multi-agent","python","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/satoh-y-0323.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-28T11:15:26.000Z","updated_at":"2026-07-03T04:43:36.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/satoh-y-0323/claude-code-conductor","commit_stats":null,"previous_names":["satoh-y-0323/claude-code-conductor"],"tags_count":104,"template":false,"template_full_name":null,"purl":"pkg:github/satoh-y-0323/claude-code-conductor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satoh-y-0323%2Fclaude-code-conductor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satoh-y-0323%2Fclaude-code-conductor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satoh-y-0323%2Fclaude-code-conductor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satoh-y-0323%2Fclaude-code-conductor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/satoh-y-0323","download_url":"https://codeload.github.com/satoh-y-0323/claude-code-conductor/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/satoh-y-0323%2Fclaude-code-conductor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35215221,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-07T02:00:07.222Z","response_time":90,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["claude-code","framework","multi-agent","python","workflow"],"created_at":"2026-05-01T01:03:03.217Z","updated_at":"2026-07-07T05:00:26.853Z","avatar_url":"https://github.com/satoh-y-0323.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Claude Code Conductor (C3)\n\n[![PyPI version](https://img.shields.io/pypi/v/claude-code-conductor.svg)](https://pypi.org/project/claude-code-conductor/)\n[![Python versions](https://img.shields.io/pypi/pyversions/claude-code-conductor.svg)](https://pypi.org/project/claude-code-conductor/)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/satoh-y-0323/claude-code-conductor/blob/main/LICENSE)\n[![Publish](https://github.com/satoh-y-0323/claude-code-conductor/actions/workflows/publish.yml/badge.svg)](https://github.com/satoh-y-0323/claude-code-conductor/actions/workflows/publish.yml)\n\n複数エージェントのオーケストレーションを中心に据えた Claude Code フレームワーク。\n\n📖 **公式ドキュメント**: [https://satoh-y-0323.github.io/claude-code-conductor/](https://satoh-y-0323.github.io/claude-code-conductor/)\n\n---\n\n## コンセプト\n\nClaude Code Conductor（C3）は「親 Claude が複数の専門エージェントを指揮する」という設計思想で作られています。\n\n```\nユーザー\n    ↓ /start, /develop, /review-phase, /doc, /mcp-config, /extract-lib ...\n親 Claude（オーケストレーター）\n    ├─ interviewer       ← ヒアリング\n    ├─ architect         ← 設計\n    ├─ planner           ← タスク計画\n    ├─ developer         ← 実装\n    ├─ tester            ← テスト\n    ├─ code-reviewer     ← コードレビュー\n    ├─ security-reviewer ← セキュリティレビュー\n    └─ doc-writer        ← ドキュメント生成\n```\n\n各エージェントは明確なスコープを持ち、担当外の作業は行いません。\nフェーズ間の遷移・承認フロー・知識の蓄積はすべてフレームワークが管理します。\n\n---\n\n## なぜ CLAUDE.md だけでは足りないのか\n\nClaude Code には標準で `CLAUDE.md` にプロジェクト指示を書く仕組みがあります。小規模・単発の作業ならそれで十分です。しかし業務開発でこう感じたことはないでしょうか。\n\n**CLAUDE.md 一枚運用の限界:**\n\n| 問題 | 何が起きるか |\n|---|---|\n| 指示が1ファイルに集中する | 長くなるほど Claude が全体を把握できなくなり、指示が無視されやすくなる |\n| 「誰が何をするか」が分離されていない | ヒアリング・設計・実装・レビューを1つの Claude が兼任するため、コンテキストが汚染されて品質が下がる |\n| ワークフローが定義されていない | 「いつ次のフェーズへ進むか」を Claude が自己判断する。承認なしに実装が始まることがある |\n| セッションをまたいだ記憶がない | 前回うまくいったアプローチ・失敗した理由・プロジェクト固有のパターンが毎回リセットされる |\n\n**C3 が解決すること:**\n\n```\nCLAUDE.md 一枚                     C3\n─────────────────────────────────────────────────────\n全指示が1ファイル              → 役割ごとにファイルを分離\nClaude がすべてを兼任          → 専門エージェントが分業\nフェーズ遷移は Claude が判断   → ユーザーが承認して進む\n知識はセッションごとにリセット → patterns.json に蓄積・昇格\n```\n\n業務開発で「繰り返し使う」「チームで使う」「品質を担保する」を実現するには、この構造が必要です。\n\n---\n\n## ファイル構成と意味\n\nC3 では「どのファイルをどこに置くべきか」の定義が設計の核心です。\n\n```\n.claude/\n├── agents/      エージェント定義（役割・スコープ・連携先）\n├── skills/      スキル定義（/xxx コマンドの実体・オーケストレーション手順）\n├── rules/       エージェントに注入される背景知識・制約\n├── hooks/       イベントドリブンで自動実行される Python スクリプト\n├── docs/        人間向けリファレンス（エージェントは読まない）\n└── memory/      セッション間の記憶（patterns.json・session ファイル）\n```\n\n各スキルは `skills/{name}/SKILL.md` の形式で配置されます（Claude Code 2026 skills 標準）。\n\n### 配置の判断基準\n\n| 書きたい内容 | 置き場所 |\n|---|---|\n| ユーザーが `/xxx` で呼び出す手順・フロー | `skills/` |\n| 単一エージェントの役割・作業手順 | `agents/` |\n| 知識・制約（「これを知っておけ」） | `rules/` |\n| 自動実行スクリプト | `hooks/` |\n| 人間向けドキュメント | `docs/` |\n\n\u003e **skills/ が C3 の核心**。Claude Code のスラッシュコマンドはすべてスキルとして実装されており、`skills/{name}/SKILL.md` に YAML フロントマター付きで定義されています。\n\n---\n\n## ワークフロー\n\n開発は `skills/dev-workflow/SKILL.md` で定義された5フェーズで進みます。\n\n```\nフェーズ A: ヒアリング    requirements-report を生成\n    ↓ 承認\nフェーズ B: 設計          architecture-report を生成\n    ↓ 承認\nフェーズ C: 計画          plan-report を生成\n    ↓ 承認（自動遷移）\nフェーズ D: TDD           tester → developer → tester のサイクル\n    ↓ 承認（自動遷移）\nフェーズ E: レビュー      code-reviewer → security-reviewer\n    ↓ 指摘あり\nフェーズ C へ戻る（内部遷移・Step 0 なし）\n```\n\n各フェーズの移行時にユーザーが承認・否認・修正を選択します。\nフェーズ D・E への遷移は承認後に自動で行われます。\n\n---\n\n## スキル一覧\n\nC3 のスラッシュコマンドはすべてスキル（`skills/{name}/SKILL.md`）として実装されています。\n\n### 開発ワークフロー\n\n| スキル | 役割 |\n|---|---|\n| `/init-session` | セッション初期化・前回状態の復元 |\n| `/setup` | コーディング規約の設定（coding-standards・project-conventions 生成） |\n| `/start` | 開発ワークフローの入口（ヒアリング/設計/計画/実装 から選択） |\n| `/develop` | TDD フェーズから直接開始 |\n| `/review-phase` | レビューフェーズから直接開始（code-reviewer + security-reviewer） |\n| `/promote-pattern` | 蓄積されたパターンを rules/ または skills/ に昇格 |\n\n### ユーティリティ\n\n| スキル | 役割 |\n|---|---|\n| `/doc` | ドキュメントをヒアリングして生成（mermaid 図・README・API 仕様書など） |\n| `/mcp-config` | MCP サーバーの追加・一覧・削除（プロジェクトスコープ） |\n| `/extract-lib` | 複数プロジェクトのコードを横断解析し、共通処理をライブラリとして設計・生成 |\n| `/recall` | 過去のセッション・レポート・パターンから類似情報を意味検索（numpy ベクトル検索 + 多言語 embedding） |\n| `/brainstorm` | 仕事・設計の相談を、資料（PDF/画像）を読み込んだ上で気軽に発散・壁打ち。視点・選択肢・論点を増やす方向（grill＝詰めるとは逆）（v2.29.0〜） |\n\n### ターミナルで使う `c3` CLI（PyPI インストール時）\n\n| コマンド | 役割 |\n|---|---|\n| `c3 init` | 利用先プロジェクトに `.claude/` を展開する |\n| `c3 init --platform codex|cursor|opencode|all` | `.claude/` を canonical source にしたまま Codex/Cursor/OpenCode adapter を追加 |\n| `c3 update` | `.claude/` をパッケージ最新版へ更新する（個人ファイルはスキップ） |\n| `c3 list-agents` / `list-skills` | 設置済みアセットを一覧表示 |\n| `c3 doctor` | 環境診断（`.claude/`・settings.json・claude バイナリ・adapter 生成物） |\n| `c3 ask` | Claude Code 以外で `AskUserQuestion` 互換の単一選択・複数選択を実行 |\n| `c3 plan validate \u003cplan-report\u003e` | plan-report の YAML フロントマターと agent 存在を検証 |\n| `c3 plan waves \u003cplan-report\u003e` | plan-report の wave 分解結果を JSON で出力 |\n| `c3 recall search \"\u003cquery\u003e\"` または `c3 recall \"\u003cquery\u003e\"` | `.claude/memory/sessions/` 等から類似チャンクを意味検索 |\n| `c3 recall rebuild [--force]` | numpy ベクトル検索インデックスを再構築（初回は fastembed が ~220MB のモデルを取得） |\n| `c3 recall stats` | チャンク数・モデル名・最終 rebuild 日時を表示 |\n| `c3 tier stats` | tier-routing（複雑度に応じた Tier 自動ルーティング）の学習データ・Tier 別コスト・現在の routing パラメータ（λ/ε/escalation・v2.27.0〜）を表形式で表示（`--json` で機械可読出力・`--recent N` で直近 outcome 件数指定）。ルーティング挙動は環境変数 `C3_TIER_COST_LAMBDA`（cost-weighted の重み・`0 ≤ λ ≤ 5`・v2.26.0〜、上限拡張 v2.27.0）/ `C3_TIER_EPSILON` / `C3_ESCALATION_THRESHOLD` で調整可（[CLI リファレンス](https://satoh-y-0323.github.io/claude-code-conductor/cli-reference/)参照） |\n| `c3 metrics` | P4 効果の総括メトリクス。レビュー指摘の事前検出実績（fixed/accepted 判断記録）・差し戻しの傾向と帰属・手戻りコスト概況を read-only で表示（`--json` で機械可読出力・`--since YYYY-MM-DD` / `--months N`（既定12）/ `--examples N`（既定5）でフィルタ）。詳細は [CLI リファレンス](https://satoh-y-0323.github.io/claude-code-conductor/cli-reference/)参照 |\n\n### 基本的な使い方\n\n```\n/init-session          # セッション開始時に必ず実行\n/setup                 # 初回のみ：プロジェクト規約を設定\n/start                 # 開発開始\n```\n\n`/start` 実行後は、各フェーズの承認を進めるだけで最後まで自動的に流れます。\n\n\u003e **動線は C3 が自動で補完します（v2.38.0〜）:** 上の 3 段階の順序を覚えていなくても構いません。`/start` を実行すれば、当該セッションで `/init-session` が未実行なら自動的に先行実行し、さらにプロジェクト規約が未設定（初回）なら `/setup` を自動的に連鎖実行してから開発に入ります。`/init-session` 単体実行でも、規約未設定なら `/setup` を自動実行します。初回導入でも継続作業でも、最初に打つコマンドが `/start` でも `/init-session` でも正しい順序に揃います。\n\u003e\n\u003e なお「自動」はコマンドを覚えていなくても**連鎖起動される**という意味で、`/setup` 自体は使用言語・規約のヒアリング（数問）を行うため、初回はそれに回答する必要があります（規約設定を無人でスキップするわけではありません）。\n\n\u003e **公式コマンドとの名前衝突について:** C3 のスキル名は Claude Code 公式コマンドと重複しないよう設計しています。`/review-phase`（≠ 公式 `/code-review` / `/review`）、`/mcp-config`（≠ 公式 `/mcp`）はこの方針に基づく命名です。公式コマンドが追加された場合は衝突回避のために本フレームワークの skill 名を変更することがあります（v2.15.1 で `/code-review` → `/review-phase` に変更しました）。\n\n---\n\n## エージェント一覧\n\n| エージェント | model | 主な出力 | 起動方式 |\n|---|---|---|---|\n| interviewer | sonnet | requirements-report | 親 Claude がペルソナ採用 |\n| architect | opus | architecture-report | 親 Claude がペルソナ採用 |\n| planner | opus | plan-report | 親 Claude がペルソナ採用 |\n| developer | sonnet | 実装コード | Agent ツールで起動 |\n| tester | sonnet | テスト・test-report | Agent ツールで起動 |\n| code-reviewer | sonnet | code-review-report | Agent ツールで起動 |\n| security-reviewer | sonnet | security-review-report | Agent ツールで起動 |\n| doc-writer | sonnet | ドキュメント各種 | Agent ツールで起動 |\n| systematic-debugger | sonnet | debug-analysis-report | Agent ツールで起動（行き詰まり時）|\n\nインタラクティブな対話が必要なエージェント（interviewer・architect・planner）は親 Claude がペルソナを採用して動作します。実装・検証系エージェントはサブエージェントとして起動されます。\n\n---\n\n## 既存プロジェクトへの導入\n\nC3 の `.claude/` はプロジェクトコードに一切触れません。既存のコードベースにそのまま追加できます。\n\n### 前提条件\n\n- [Claude Code](https://claude.ai/code) がインストール済みでログインしていること\n- Python 3.10 以上がインストール済みであること\n\n### 手順（推奨: PyPI から）\n\n**1. C3 をインストールする**\n\n```bash\npip install claude-code-conductor\n```\n\n**2. プロジェクトに `.claude/` を展開する**\n\n```bash\ncd /path/to/your-project\nc3 init\n```\n\n`c3 init` がパッケージに同梱された `.claude/` テンプレートをカレントディレクトリへコピーします。後日テンプレート側を更新したい場合は `c3 update` で差分のみ反映できます（`reports/` や `memory/sessions/` 等の個人ファイルは保持されます）。\n\nCodex/Cursor/OpenCode でも同じ C3 workflow を使う場合は、`.claude/` を動かさず adapter を追加します。\n\n```bash\nc3 init --platform codex     # AGENTS.md / .agents/skills / .codex を生成\nc3 init --platform cursor    # .cursor/rules / .cursor/mcp.json を生成\nc3 init --platform opencode  # AGENTS.md / .opencode/agents を生成\n```\n\nCodex/Cursor/OpenCode adapter は `.claude/skills` と `.claude/agents` を参照元にします。`AskUserQuestion` は MCP tool `c3_ask_user_question`、または fallback の `c3 ask` で単一選択・複数選択を維持します（OpenCode は MCP を生成せず `AGENTS.md` の指示でユーザーに直接確認）。Claude Code の `Agent` / `Skill` tool 前提は、Codex では `.codex/agents/` と `.agents/skills/`、Cursor では `.cursor/rules/c3-core.mdc`、OpenCode では `.opencode/agents/` の `@c3-*` で読み替えます。\n\n**3. プロジェクトを Claude Code で開き、初期設定を行う**\n\n```\n/init-session    # セッション初期化\n/setup           # プロジェクトの技術スタック・規約を設定（初回のみ）\n```\n\n`/setup` を実行すると、使用言語・フレームワーク・命名規則などをヒアリングして `.claude/rules/` に規約ファイルが生成されます。これ以降は `/start` で開発を始められます。\n\n### 手順（PyPI を使わない場合）\n\n```bash\ngit clone https://github.com/satoh-y-0323/claude-code-conductor.git\ncp -r claude-code-conductor/.claude /path/to/your-project/\n```\n\nWindows（PowerShell）:\n```powershell\nCopy-Item -Recurse claude-code-conductor\\.claude your-project\\\n```\n\n### 既存コードへの影響\n\n| 変更される場所 | 内容 |\n|---|---|\n| `.claude/` ディレクトリ（追加） | C3 のフレームワーク一式 |\n| `.gitignore`（追記推奨） | `reports/`・`memory/sessions/` 等の個人作業ファイルを除外 |\n\nプロジェクトの `src/` や既存コードには一切触れません。\n\n---\n\n## カスタマイズ方法\n\n### コーディング規約を追加する\n\n```\n/setup\n```\n\nを実行すると技術スタック・規約をヒアリングし、以下を自動生成します:\n- `.claude/rules/coding-standards.md`\n- `.claude/rules/project-conventions.md`\n\n### プロジェクト固有の指示を追加する\n\n| 内容 | 置き場所 |\n|---|---|\n| プロジェクトの概要・アーキテクチャ背景 | プロジェクトルートの `CLAUDE.md` |\n| コーディング規約・命名規則 | `/setup` → `.claude/rules/` |\n| C3 フレームワーク設定 | `.claude/CLAUDE.md`（変更しない） |\n\n### エージェントを追加・カスタマイズする\n\n`.claude/agents/` に新しいエージェント定義ファイルを追加します。\nフォーマットは既存エージェントファイルの構成（Core Mandate / Key Scope / Workflow / Related Agents）に合わせてください。\n\n---\n\n## パターン昇格システム\n\n開発中に発見した「うまくいったアプローチ」や「再発防止ルール」は session ファイルの `patterns` に記録されます。\n\n- セッションをまたいで観測されるたびに **信用度（trust_score）** が上がります\n- 登録から3日以上・信用度 0.8 以上で **昇格候補** になります\n- `/promote-pattern` を実行すると `rules/promoted/` または `skills/promoted-YYYYMMDD-{id}/` にルールとして昇格します\n- 昇格したルールは以降の全セッションで自動的にエージェントへ注入されます\n\n昇格スキルは `skills/promoted-YYYYMMDD-{id}/SKILL.md` の形式で配置され、Claude Code が自動的に検出します。\n\n---\n\n## レポートの管理\n\n各フェーズが生成するレポートは `.claude/reports/` に保存されます。\n\n```\n.claude/reports/\n  requirements-report-YYYYMMDD-HHMMSS.md\n  architecture-report-YYYYMMDD-HHMMSS.md\n  plan-report-YYYYMMDD-HHMMSS.md\n  code-review-report-YYYYMMDD-HHMMSS.md\n  security-review-report-YYYYMMDD-HHMMSS.md\n  archive/   ← /start 実行時に古いレポートをここに移動\n```\n\n`/start` の冒頭で既存レポートのアーカイブ確認が入ります（全移動・フェーズ選択・引き継ぎ）。\n\n---\n\n## 並列実行 (parallel-agents skill)\n\n計画フェーズで生成した plan-report を YAML フロントマター付きマニフェストとして読み込み、独立タスクを親 Claude の Agent ツール並列起動 + 公式 `isolation: \"worktree\"` で並列実行できます。\n\n\u003e **アーキテクチャ移行履歴:** v1.x までは外部プロセス制御の **PO (Parallel Orchestra)** が並列実行を担っていましたが、v2.0.0 で完全撤去されました。現在は Claude Code 公式の subagent 並列起動機能に統一されており、追加プロセス・追加デーモン・追加スキーマは不要です。\n\n要件は Python ≥ 3.10、PATH に `claude` バイナリ、PyYAML（C3 の依存として自動インストール）。\n\n**使い方:**\n\n1. `/start` で要件→設計→計画フェーズを完走させる（planner が plan-report の先頭に YAML フロントマターを自動付与します）\n2. `/develop` を起動 → **D-0** で plan-report のフロントマターを自動検出し `parallel-agents` skill へ切り替わる\n3. C3 が `c3 plan validate` でマニフェスト妥当性を検証、wave ごとにユーザー承認を取りながら Agent ツールで並列実行します\n\nTDD を伴う機能実装は、planner が「test- → impl- → confirm-」の 3 タスクペアに分解し、各 wave 内で独立機能間で並列起動されます。並列実行時は worktree 専用の `wt_tester` / `wt_developer` / `wt_systematic-debugger` agent が使用され、レポートは `task_id` ベースのファイル名で出力されます。\n\n### 推奨個人設定 (`~/.claude/settings.json`)\n\n`parallel-agents` を快適に使うため、以下 2 点を **個人設定として** 推奨します（C3 配布物には含めません）:\n\n| 項目 | 推奨値 | 理由 |\n|---|---|---|\n| Claude Code バージョン | 2.1.150 以降 | worktree auto-cleanup の安定動作 |\n| `worktree.baseRef` | `\"head\"` | push 前のローカルコミットを worktree に含める |\n\n最小設定例:\n\n```json\n{\n  \"worktree\": {\n    \"baseRef\": \"head\"\n  }\n}\n```\n\n詳細（背景・副作用・トラブルシュート）は [`.claude/docs/parallel-agents-setup.md`](./.claude/docs/parallel-agents-setup.md) を参照してください。\n\n---\n\n## セッション管理\n\nC3 はセッションをまたいで作業状態を記憶します。\n\n- **毎回のセッション開始時:** `/init-session` を実行する\n- **タスク完了のたびに:** session ファイルの残タスクを更新する（まとめて最後に書かない）\n- **セッション終了時:** `stop.py` フックが自動的に以下を実行する\n  - session ファイルの記録時刻を更新\n  - Claude の最終応答（`last_assistant_message`）を事実ログに自動記録（次セッションで「前回何をしたか」が分かる）\n  - パターン信用度を再計算\n\n---\n\n## 第三者ライブラリのライセンス\n\n`c3 recall` 機能（v2.10.0〜）で利用する以下の依存は `LICENSES/` ディレクトリに出典を同梱しています:\n\n| 依存 | ライセンス | 用途 |\n|---|---|---|\n| [numpy](https://github.com/numpy/numpy) | BSD-3-Clause | recall のベクトル類似度検索（cosine ブルートフォース） |\n| [fastembed](https://github.com/qdrant/fastembed) | Apache-2.0 | embedding 生成ランタイム（ONNX ベース） |\n| [onnxruntime](https://github.com/microsoft/onnxruntime) | MIT | fastembed の推論バックエンド |\n| [sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2](https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2) | Apache-2.0 | 多言語 embedding モデル（384 次元・約 220MB・約 50 言語対応） |\n\nC3 本体は MIT のままです。業務アプリへの再配布時はこれらの LICENSE / NOTICE を同梱してください。\n\n### `c3 recall` 自動コンテキスト注入（α 案）\n\nv2.10.0 から `UserPromptSubmit` フック `.claude/hooks/recall_inject.py` が、毎プロンプトで `c3 recall search` を裏で実行し、類似情報の上位 3 件を親 Claude のコンテキストに追加します。前置きで「現タスクと無関係なら無視してください」と明示し、最終的な採否は LLM 側の判断に委ねる設計です（α 案）。\n\n- 短い prompt / スラッシュコマンド / `@mention` / index 未構築の場合は silent no-op\n- 環境変数 `C3_RECALL_HOOK_DISABLE=1` で完全停止可\n- 注入対象は score 0.4 以上の上位 3 件のみ（CLI の既定 `--min-score 0.3` より厳格に絞る）\n- インデックスが古い（ソース mtime \u003e index mtime）と判定したら、注入テキストの冒頭に「AskUserQuestion で `今すぐ rebuild / 後で / 無視` を確認してください」ガイダンスを付加。親 Claude が読んで AskUserQuestion を発火し、ユーザー選択に応じて Bash で `c3 recall rebuild` を実行する\n\nオフライン環境やプロキシ越しに利用する場合、初回 `c3 recall rebuild` 時のモデルダウンロードは `FASTEMBED_CACHE_PATH` 環境変数を社内ミラー / NAS パスに向けることで回避できます。\n\n\u003e **fastembed モデルダウンロードの整合性 (SR-L-3)**\n\u003e fastembed は HuggingFace Hub からモデルを取得する際に blob ID とサイズを検証しますが、SHA-256 チェックサムの独立検証は行いません。セキュリティ要件の高い環境では、`FASTEMBED_CACHE_PATH` を社内ミラーに向けたうえで、ダウンロード後に公式リポジトリ (https://huggingface.co/sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2) 掲載の SHA-256 と手動で照合することを推奨します。\n\n\u003e **推移的依存 urllib3 の脆弱性 (SR-H-1)**\n\u003e `urllib3 \u003c= 2.6.3` に既知脆弱性が報告されています。`fastembed → huggingface-hub → urllib3` 経由で間接的に利用されます。`pip install -U urllib3` で 2.7.0 以上にアップデートすることを推奨します。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatoh-y-0323%2Fclaude-code-conductor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsatoh-y-0323%2Fclaude-code-conductor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsatoh-y-0323%2Fclaude-code-conductor/lists"}