Skip to content

RNA4219/shipyard-cp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

218 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shipyard-cp

日本語版 | English

status mode ui stack release

shipyard-cp は、複数の AI provider / worker を有限ネストで上流オーケストレーションする control plane です。
LiteLLM を推論ゲートウェイとして使い、Codex / Claude Code / Google Antigravity / GLM-5 系ワーカーを、共通の task / run / gate / audit モデル上で制御します。

このプロダクトの本体は backend / worker / CLI です。
frontend は補助UIとして、task と run の閲覧、状態確認、補助操作を行います。

3分で分かる最短操作例

まずは backend を起動して、CLI から task を流し、状態を見るだけで全体像が掴めます。

pnpm install
pnpm run dev
curl http://localhost:3100/healthz

その後は Claude Code / Codex から次の入口を使う想定です。

  1. task を流す: run コマンド
  2. 状態を確認する: status コマンド
  3. フロー全体を追う: pipeline コマンド

迷ったら、正本ハブの CLI Usage から始めてください。 コマンドの役割だけ先に見たい場合は .claude/commands 入口 を参照してください。 GLM5 を主線にする場合は GLM5 Quickstart を合わせて確認してください。 実運用向けの詳細手順は GLM5 Operation Instructions を参照してください。 セキュリティ計画と受け入れ条件は Security Docs を参照してください。

CLI フロー図

flowchart LR
    A["run / task 作成"] --> B["plan"]
    B --> C["dev"]
    C --> D["acceptance"]
    D --> E["integrate"]
    E --> F["publish"]
    B --> S["status で進捗確認"]
    C --> S
    D --> S
    E --> S
    F --> S
    S --> U["必要時だけ Web UI で補助確認"]
Loading

Latest Release

2026-06-23: OpenCode-Compatible Worker Runtime

MIT版OpenCodeの session / tool / event 設計をShipyardのControl Plane側へ移植し、WorkerRuntimeSession として共通runtime contractを追加しました。詳細は OpenCode-Compatible Worker Runtime release note を参照してください。

主な追加機能:

  • Durable input admission と session event replay
  • Scoped tool registry と stale tool registration拒否
  • Tool output bounding と retained artifact参照
  • OpenCode event streamのruntime-neutral正規化
  • QEG standard profileでの証跡付きGo

v0.2.0

主な追加機能:

  • Session reuse with same-stage policy
  • Agent-aware session profiles (planning/build/verification)
  • Warm pool for idle session optimization
  • Event stream tracking and orphan recovery

何を解決するアプリか

AI コーディングエージェントを実務で使い始めると、すぐに次の問題が出ます。

  • どの task が今どこまで進んでいるか分からない
  • plan / dev / acceptance の区切りが曖昧で、結果だけ返ってきて途中経過が追えない
  • Codex、Claude Code、他の worker で入出力や癖が違い、運用がばらつく
  • agent に agent を呼ばせるような構成で、委譲の深さや責務境界が曖昧になりやすい
  • 失敗時に再実行、保留、accept 判定、publish 判断を人が場当たりで処理してしまう
  • GitHub や tracker とつながっていても、状態と成果物の紐付けが散らばる

shipyard-cp は、この「AI worker を実務フローに載せた時の運用の散らかり」を整理するための control plane です。

具体的には、次をまとめて面倒を見ます。

  • 複数 provider / worker を単一の上流 orchestrator から扱う
  • 無限委譲ではなく有限ネストを前提にして、task の深さと責務を制御する
  • task を plan -> dev -> acceptance -> integrate -> publish の明示的な段階に分ける
  • worker ごとの差を吸収して、共通の WorkerJob / WorkerResult 契約で扱う
  • retry / lease / heartbeat / capability gate を control plane 側に寄せる
  • task、run、timeline、audit を残して「何が起きたか」を後から追えるようにする
  • agent-taskstate-jsmemx-resolver-jstracker-bridge-js を通じて、状態・文書・tracker の参照先をつなぐ

要するに、単に「AI にコードを書かせる」ためのツールではなく、複数の worker を有限ネストで束ねながら、実務フローに載せるための上流 control plane です。

運用方針

  • 主導線: Claude Code / Codex コマンド経由の API 操作
  • 補助導線: Web UI
  • 内部契約: API / OpenAPI / schema

人が日常的に触る入口は .claude/commands/ に定義した操作手順です。これらは実 CLI バイナリではなく、Claude Code / Codex から API 操作を行うための補助コマンドです。 API は UI 接続、内部契約、自動化、検証用として維持しています。

最初の入口

まずはここから見れば十分です。

  1. CLI Usage
  2. GLM5 Quickstart
  3. GLM5 Operation Instructions
  4. Security Docs
  5. run コマンド
  6. status コマンド
  7. 必要なら pipeline コマンド
  8. 実装や運用の現在値は RUNBOOK

クイックスタート

pnpm install
pnpm run dev

疎通確認:

curl http://localhost:3100/healthz

補助UI を使う場合:

  • UI: http://localhost:8080
  • API: http://localhost:3100

Claude Code / Codex コマンドでの使い方

日常運用は docs/cli-usage.md を正本にします。

よく使う入口:

補足:

  • .claude/commands/ は product runtime や実 CLI バイナリではなく、Claude Code / Codex 用の運用補助コマンド集です
  • API 直打ちはデバッグや検証時に限定するのを推奨します

運用 Skills

Codex / Claude Code 向けの運用 Skills は skills に置いています。

Skills は product の API 契約ではなく、repo を扱う人向けの運用ガイドです。

アーキテクチャ概要

shipyard-cp
├─ src/                  backend / control plane 本体
├─ web/                  補助UI
├─ packages/             内蔵 npm packages
│  ├─ agent-taskstate-js
│  ├─ memx-resolver-js
│  ├─ tracker-bridge-js
│  └─ shared-redis-utils
├─ infra/                Docker / compose / kubernetes / TLS
├─ docs/                 要件・運用・仕様・CLIハブ
└─ skills/               Codex / Claude Code 向け運用 Skills

主要な責務:

  • src/: state machine、dispatch、result orchestration、acceptance / integrate / publish、monitoring
  • src/domain/worker/: WorkerAdapter契約、session reuse、event stream正規化、orphan recovery
  • src/domain/worker-runtime/: OpenCode-compatible session / tool registry / event replay / output bounding の共通runtime contract
  • src/infrastructure/: server manager、session executor、fallback制御
  • web/: task / run の閲覧、補助操作、接続確認
  • packages/: 状態・resolver・tracker の埋め込み依存
  • infra/: compose、Dockerfile、Kubernetes TLS 資材

Worker Execution Architecture (内部実装)

Codex / Claude Code workerは内部でOpenCode serve/session reuseを使用。詳細は OpenCode Specification 参照。

概要:

  • Session reuse: 同一条件でsession再利用(same-stageのみ)
  • Warm pool: idle session事前validation
  • Event stream: transcript/tool_use/permission_request追跡
  • Orphan recovery: timeout/crash時自動cleanup

外部API契約は維持。public worker typeはcodex/claude_code/google_antigravity/glm_5のまま。

Web UI の位置づけ

Web UI は「主役」ではなく「補助UI」です。

  • task / run の閲覧
  • 状態確認
  • 補助的な dispatch / acceptance 完了などの操作

CLI や worker フローが本命で、frontend はそれを邪魔しない軽い導線として扱います。
詳細は web/README.mdweb/FRONTEND_RUNBOOK.md を参照してください。

最小環境変数

ローカル起動の最低限:

  • .env または環境変数
  • REDIS_URL(Redis を使う場合)

外部連携で必要になりやすいもの:

  • OPENAI_API_KEY
  • ANTHROPIC_API_KEY
  • GOOGLE_API_KEY
  • GITHUB_TOKEN
  • GLM_API_KEY

ライブテストや publish 系では、必要なキーだけ個別に追加してください。

インフラ資材

ドキュメント

主要ドキュメント:

docs/frontend-* は検収時点の履歴資料です。現在の挙動を判断するときは、 実装本体と上記の正本文書を優先してください。

テストと品質

日常的に使うコマンド:

pnpm test           # テスト実行
pnpm run test:coverage  # カバレッジ付きテスト
pnpm run build      # ビルド
cd web && npm test  # frontend テスト
cd web && npm run build  # frontend ビルド

テスト構成:

  • テストファイル: 89ファイル
  • テストケース: 約2,100件
  • テストコード: 約55,000行
  • カバレッジ: 約83% (src/ 配下)

ライブテストは外部 API トークンが必要です。 token 類は .env や環境変数で管理し、repo に直接入れない運用を前提としています。

API について

API は残っていますが、位置づけは internal contract です。

  • UI 接続
  • 自動化
  • worker / result 反映
  • デバッグ / 検証

通常運用では docs/cli-usage.md の CLI 導線を優先してください。

About

AIワーカー群を統治し、Dev / Acceptance / Publish を責務分離して流す self-hosted control plane.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors