mcpField
O
opc-architecture

opc-architecture

github.com/parcadeiエージェントワークフロー3.9k497 回インストール39 週間前に更新
リポジトリ

opc-architecture について

Orchestrated Parallel Claude(OPC)が Claude Code をどう拡張するかを解説するスキルです。エージェント調整の仕組みを把握したい開発者向けに、フック、スキル、スクリプト、データベースによる連携を説明します。

主な機能

  1. 01OPC と Claude Code の関係を説明
  2. 02フックとスキルの役割を解説
  3. 03子プロセスのエージェント起動を説明
  4. 04ファイルと PostgreSQL による調整を解説
  5. 05OPC の主要ファイルを紹介

活用シーン

  1. 01OPC のアーキテクチャの把握
  2. 02エージェントの起動と実行の追跡
  3. 03Claude Code インスタンス間の調整の確認

インストール

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

$npx skills add https://github.com/parcadei/continuous-claude-v3 --skill opc-architecture

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

詳細

OPC のアーキテクチャを理解する

OPC(Orchestrated Parallel Claude)は Claude Code を拡張するものであり、置き換えるものではありません。

基本概念

Claude Code CLI が実行エンジンです。OPC は以下を通じてオーケストレーションを追加します。

  • フック - Claude Code のイベント(PreToolUse、PostToolUse、SessionStart など)を傍受します
  • スキル - プロンプトを Claude Code に読み込みます
  • スクリプト - 調整のためにフック/スキルから呼び出されます
  • データベース - Claude Code のインスタンス間で状態を保存します

エージェントの仕組み

エージェントを起動するとき:

  1. メインの Claude Code インスタンス(ターミナル)が Task ツールでフックを実行します
  2. フックが subprocess.Popen(["claude", "-p", "prompt"]) を呼び出します
  3. 新しい Claude Code インスタンスが子プロセスとして起動します
  4. 子プロセスは独立して動作し、調整用 DB を読み書きします
  5. 親プロセスは DB 内の PID を使って子プロセスを追跡します
$ claude                         ← Main Claude Code (your terminal)
    ↓ Task tool triggers hook
    ↓ subprocess.Popen(["claude", "-p", "..."])
        ├── claude -p "research..."   ← Child agent 1
        ├── claude -p "implement..."  ← Child agent 2
        └── claude -p "test..."       ← Child agent 3

OPC ではないもの

  • OPC は独立したアプリケーションではありません
  • OPC は Claude Code なしでは動作しません
  • OPC は Claude API の呼び出しを直接傍受しません
  • OPC は Claude Code の内部動作を変更しません

OPC とは何か

  • OPC は Claude Code が .claude/hooks/ から読み込むフックです
  • OPC は Claude Code が .claude/skills/ から読み込むスキルです
  • OPC は調整のためにフック/スキルから呼び出されるスクリプトです
  • OPC は Claude Code のインスタンス間で状態を共有するためのデータベースバックエンドです

主要なファイル

.claude/
├── hooks/           ← TypeScript hooks that Claude Code runs
├── skills/          ← SKILL.md prompts that Claude Code loads
├── settings.json    ← Hook registration, Claude Code reads this
└── cache/           ← State files, agent outputs

opc/
├── scripts/         ← Python scripts called by hooks
├── docker-compose.yml ← PostgreSQL, Redis, PgBouncer
└── init-db.sql      ← Database schema

調整の流れ

  1. ユーザーがターミナルで claude を実行します
  2. Claude Code が .claude/settings.json からフックを読み込みます
  3. ユーザーが「調査エージェントを起動して」と指示します
  4. Claude が Task ツールを使います
  5. PreToolUse フックが実行され、リソースを確認します
  6. フックがサブプロセスとして claude -p "research..." を起動します
  7. フックが PID を PostgreSQL に保存します
  8. 子エージェントが動作し、出力を .claude/cache/agents/<id>/ に書き込みます
  9. 子エージェントが完了し、PostgreSQL に「完了」を通知します
  10. 親プロセスが DB を確認し、子プロセスの出力ファイルを読み込みます

覚えておくこと

  • すべての「エージェント」は、単なる別の claude -p プロセスです
  • フックはイベントを傍受しますが、新しい機能を作るわけではありません
  • 調整はすべてファイルと PostgreSQL を介して行われます
  • Claude Code が常に実行エンジンです

コメント