claw-code-parity

claude-code harness — Python clean-room → Rust port / 2026-03-31 origin

1 — 概要
50K
スター / 2時間(GitHub 最速記録)
292
コミット / 最初の 4日間
48.6K
Rust LOC(9 クレート)
40
実装済みツール仕様

Claude Code のソースコードが流出し開発者コミュニティが騒然となった日、Sigrid Jin(instructkr)は法的リスクを回避するため独自実装の方針を即断した。oh-my-codex (OmX)$team モード(並列コードレビュー)と $ralph モード(持続的実行ループ)を活用し、日の出前に Python クリーンルーム実装を完成させた。

Sigrid Jin は Wall Street Journal(2026年3月21日付)にも取り上げられた Claude Code の主要パワーユーザーであり、年間 250 億トークンを使用したことでも知られる。本実装はそのハーネスエンジニアリング知見の集大成だ。

当初は TypeScript 原本の研究を目的としていたが、倫理的検討を経て「流出スナップショットをそのまま保持しない」方針へ転換。本リポジトリは現在、Python ポーティングワークスペース(ハーネス研究・パリティ監査)と Rust 実装claw バイナリ)の 2 層構成で発展している。

2 — アーキテクチャ
2 層構成: Python 層はハーネスのポーティング研究・マニフェスト管理を担い、Rust 層が実際の claw CLI バイナリとして動作する。Python 側はパリティ監査ツールとして機能し続ける。
flowchart TD USER(["User / Claw Agent"]) CLI["claw CLI\nrusty-claude-cli"] RUNTIME["ConversationRuntime\nruntime crate"] API["API Client\napi crate — HTTP/SSE"] TOOLS["Tool System\n40 tool specs"] PERM["PermissionEnforcer\nread-only / workspace"] MOCK["Mock Anthropic Service\ndeterministic parity tests"] PYTHON["Python Layer\nsrc/ — research & audit"] USER --> CLI CLI --> RUNTIME RUNTIME --> API RUNTIME --> TOOLS RUNTIME --> PERM MOCK -. parity testing .-> API PYTHON -. parity audit .-> RUNTIME

Rust クレート構成(9 crates)

api

Anthropic HTTP クライアント・SSE ストリームパーサー・OAuth ベアラ認証

runtime

ConversationRuntime エージェントループ・設定階層・MCP クライアント・権限ポリシー

tools

Bash・ReadFile・WriteFile・EditFile・GlobSearch・GrepSearch ほか 40 ツール仕様の実行実装

rusty-claude-cli

メイン CLI バイナリ(claw)・rustyline REPL・ストリーミング表示・引数パーサー

mock-anthropic-service

決定論的 /v1/messages モック。10 パリティシナリオ・クリーン環境ハーネス向け

commands / compat-harness / plugins

スラッシュコマンドレジストリ・TS マニフェスト抽出・バンドルプラグイン

Python ワークスペース(src/)

port_manifest.py — ワークスペース構造サマリ
models.py — サブシステム・バックログ dataclass
commands.py — コマンドポートメタデータ
tools.py — ツールポートメタデータ
query_engine.py — ポーティングサマリ生成
parity_audit.py — TypeScript 原本との差分監査
runtime.py — PortRuntime(ルーティング・ループ)
session_store.py — セッション永続化
3 — パリティ(9-lane チェックポイント)

2026-04-03 時点。全 9 レーン main マージ済み。292 コミット・3 名コントリビュータ・4 日間(2026-03-31 → 2026-04-03)。

レーン 機能 状態 主要コンポーネント コミット
Lane 1 Bash validation merged bash_validation.rs
readOnlyValidation / destructiveCommandWarning / modeValidation
36dac6c
Lane 2 CI fix merged sandbox.rs
unshare 実能力プローブ(binary 存在ではなく実行可否を検査)
89104eb
Lane 3 File-tool merged file_ops.rs 744 LOC
バイナリ検出・サイズ制限・ワークスペース境界・シンボリックリンクガード
284163b
Lane 4 TaskRegistry merged task_registry.rs 335 LOC
create / get / list / stop / update / output スレッドセーフ管理
5ea138e
Lane 5 Task wiring merged tools/src/lib.rs
6 タスクツールを TaskRegistry にバインド
e8692e4
Lane 6 Team + Cron merged team_cron_registry.rs 363 LOC
TeamRegistry + CronRegistry in-memory スレッドセーフ
c486ca6
Lane 7 MCP lifecycle merged mcp_tool_bridge.rs 406 LOC
サーバー接続状態・リソース一覧・ツール dispatch・認証状態
730667f
Lane 8 LSP client merged lsp_client.rs 438 LOC
diagnostics / hover / definition / references / completion / symbols
2d66503
Lane 9 Permission enforcement merged permission_enforcer.rs 340 LOC
ツールゲーティング・ファイル書き込み境界・Bash read-only ヒューリスティック
66283f4

モックパリティハーネス(10 シナリオ)

streaming_text read_file_roundtrip grep_chunk_assembly write_file_allowed write_file_denied multi_tool_turn_roundtrip bash_stdout_roundtrip bash_permission_prompt_approved bash_permission_prompt_denied plugin_tool_roundtrip
4 — ツール仕様(40 specs)
ファイル操作
  • Bash
  • ReadFile
  • WriteFile
  • EditFile
  • GlobSearch
  • GrepSearch
タスク管理
  • TaskCreate
  • TaskGet
  • TaskList
  • TaskStop
  • TaskUpdate
  • TaskOutput
チーム・クーロン
  • TeamCreate
  • TeamDelete
  • CronCreate
  • CronDelete
  • CronList
MCP / LSP
  • ListMcpResources
  • ReadMcpResource
  • McpAuth
  • MCP
  • LSP
Web / エージェント
  • WebFetch
  • WebSearch
  • Agent
  • Skill
  • ToolSearch
ユーティリティ
  • TodoWrite
  • NotebookEdit
  • REPL
  • PowerShell
  • Sleep
  • SendUserMessage
設定・制御
  • Config
  • EnterPlanMode
  • ExitPlanMode
  • StructuredOutput
  • AskUserQuestion
  • RemoteTrigger
  • Brief
  • TestingPermission
Rust 実装状況
  • Anthropic API + SSE ✓
  • OAuth 認証 ✓
  • REPL(rustyline)✓
  • CLAUDE.md 対応 ✓
  • セッション永続化 ✓
  • コスト追跡 ✓
既知の制限: AskUserQuestion は保留応答ペイロードを返すのみで UI バインディング未実装。RemoteTrigger はスタブ応答。Bash 深い検証(Lane 1 の一部)はブランチのみ。
5 — ロードマップ(Clawable Harness への道)

"clawable" とは AI エージェントがそのまま駆動できる——決定論的・機械可読・自律回復型・イベントファースト——なハーネスのこと。現状 7 つの課題を 5 フェーズで解消する。

Phase 1
Reliable Worker Boot
ワーカーライフサイクルの明示的状態機械(spawning → trust_required → ready_for_prompt → running → finished)。信頼済みリポジトリの自動トラスト解決。セッション制御 API(create / await-ready / send-task / fetch-state / restart / terminate)の公開。
Phase 2
Event-Native Clawhip Integration
型付きレーンイベントスキーマ(lane.started / lane.red / lane.pr.opened など)の設計。失敗の分類(prompt_delivery / compile / test / mcp_startup / infra)。チャンネル出力をスクレイプされた文字列ではなく構造化イベントから生成。
Phase 3
Branch / Test Awareness と Auto-Recovery
広域テスト前に main との差分を検出(古いブランチ起因の誤検知防止)。既知失敗パターン(trust prompt 未解決・古いブランチ・MCP ハンドシェイク失敗)への自動回復レシピ。グリーン性契約(targeted / package / workspace / merge-ready の区別)の確立。
Phase 4
Claws-First Task Execution
型付きタスクパケット(objective / scope / branch policy / acceptance tests / escalation policy)。ポリシーエンジン(merge / retry / rebase / stale cleanup を機械強制)。機械可読なレーンボード(repos / active claws / worktrees / merge readiness / last event)。
Phase 5
Plugin and MCP Lifecycle Maturity
各プラグイン・MCP 統合が config 検証 / startup healthcheck / degraded-mode 動作 / shutdown contract を公開。エンドツーエンド MCP ライフサイクルパリティ(設定ロード → サーバー登録 → spawn/connect → ハンドシェイク → ツール発見 → 呼び出し → エラー処理 → shutdown)の達成。
6 — クイックスタート

Rust CLI(claw バイナリ)

# ビルド
cd rust
cargo build --release

# インタラクティブ REPL
./target/release/claw

# ワンショットプロンプト
./target/release/claw prompt "explain this codebase"

# モデル指定(エイリアス使用可)
./target/release/claw --model sonnet prompt "fix the bug in main.rs"

# モックパリティハーネス実行
./scripts/run_mock_parity_harness.sh

Python ワークスペース

# ポーティングサマリ表示
python3 -m src.main summary

# マニフェスト確認
python3 -m src.main manifest

# パリティ監査(TypeScript 原本との差分)
python3 -m src.main parity-audit

# コマンド一覧(先頭 10件)
python3 -m src.main commands --limit 10

# ツール一覧(先頭 10件)
python3 -m src.main tools --limit 10

# テスト実行
python3 -m unittest discover -s tests -v

モデルエイリアス

エイリアス解決先モデル
opusclaude-opus-4-6
sonnetclaude-sonnet-4-6
haikuclaude-haiku-4-5-20251213

REPL スラッシュコマンド

コマンド説明
/helpヘルプ表示
/statusセッション状態(モデル・トークン使用量・コスト)
/compact会話履歴の圧縮
/model [name]使用モデルの確認・切り替え
/permissions権限モードの確認・切り替え
/config [section]設定確認(env / hooks / model)
/diffGit diff 表示
/session [id]以前のセッションを再開
/export [path]会話のエクスポート