mcpField
B
BugProof

BugProof

ローカル
github.com開発ツール022 週間前に更新

BugProof について

BugProofは、失敗したコマンドをソース、環境情報、再実行メタデータとともにポータブルな .bug アーティファクトへ記録します。開発者はマシン間で障害を再現・比較でき、MCPサーバーを通じてAIエージェントもこれらの作業を行えます。

主な機能

  1. 01障害を .bug アーティファクトに記録
  2. 02記録した障害の再実行と比較
  3. 03Ed25519 による署名と検証
  4. 04クロスプラットフォーム再実行
  5. 05MCP ツール、リソース、プロンプト

活用シーン

  1. 01失敗した CI テストをローカル再実行用に記録
  2. 02異なるマシンでの障害を比較
  3. 03実行前にアーティファクトを確認
  4. 04AIエージェントによる障害の記録と分析

MCP 対応

組み込みのstdio MCPサーバーは、記録、再実行、検査、比較、アーティファクト管理のツールに加え、アーティファクトのリソースとワークフロー用プロンプトを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"sidinsearch-bugproof": {
"command": "npx",
"args": [
"-y",
"bugproof"
]
}
}
}
起動コマンドnpx -y bugproof

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmbugproof1.6.5

ツール

10

掲載時のツール一覧 · 3 週間前に更新

パラメーター型必須説明
namestringいいえ成果物名(任意)
commandstringはい実行してキャプチャするコマンド(例:"npm test")
timeoutstringいいえタイムアウト(ミリ秒、デフォルト:300000)
descriptionstringいいえバグのわかりやすい説明
skipSecretsbooleanいいえシークレットのスキャンをスキップします(デフォルト:false)

詳細

BugProof

BugProof Logo

バグ報告ではなく、実行できるバグを。

失敗したコマンドを、誰でも自分のマシンで再現できるポータブルな .bug アーティファクトに記録します。同じコード、同じ環境、同じ失敗を再現できます。暗号署名に対応。クロスプラットフォーム。コンテナーは不要です。

npm version License: AGPL v3 Node.js Cross-Platform

https://github.com/user-attachments/assets/2315cfee-3ccf-40d7-830e-3a3d23731ab8



BugProof を使う理由

「自分のマシンでは動く」はバグ報告ではありません。

現在、バックエンドや CLI のバグを報告すると、たいてい次のようになります。

  • ターミナルのスクリーンショット
  • コピー&ペーストされたスタックトレース
  • 関係がありそうなファイルの一覧
  • 報告者がどう実行したかについての推測に基づく説明

その後、メンテナーはバージョンを合わせ、環境を再現し、適切なコマンドを見つけ、設定を推測しながら、失敗を再構築するのに何時間も費やします。その時間の大半は無駄になります。

BugProof はバグそのものを記録します。説明を記録するのではありません。 1 つのコマンドで、ソースのスナップショット、正確なコマンド、環境スキーマ、失敗のフィンガープリント、再現用メタデータを含む単一の .bug ファイルを生成します。別の開発者が bugproof replay bug.bug を実行すれば、失敗を決定論的に再現できます。

バグのための Git と考えてください。ポータブルで、コンテンツアドレス指定が可能な検証済みアーティファクトにより、「再現できますか?」がワンライナーになります。


主な特徴

  • ワンコマンドで記録。 失敗するコマンドを bugproof capture -- でラップして、結果を共有できます。
  • 決定論的な再現。 ソース、環境、コマンド、フィンガープリントをまとめて持ち運べます。判定は自動です。
  • Docker もデーモンも不要。 Linux の名前空間、Windows の Job Objects、macOS の Seatbelt など、OS ネイティブのプリミティブを使用します。
  • 暗号署名。 Ed25519 による署名と検証が組み込まれています。bugproof keygen/--sign/verify で改ざんを検知できるアーティファクトを作成できます。
  • 自己修復する再現。 --self-heal を指定すると、サンドボックス内で不足している npm/pip 依存関係を自動インストールして再試行します。
  • ベストエフォートの認証情報のマスキング。 環境変数をパターンマッチングとシャノンエントロピーでスキャンします。既知のシークレット形式(API キー、トークン、JWT)は検出できますが、エントロピーの低いパスワードやバイナリー形式の認証情報は漏えいする可能性があります。
  • マルチ言語対応。 Node.js、Python、Ruby、Go、Rust、Java、C/C++、.NET、Kotlin のビルドコンテキストを自動検出します。
  • クロスプラットフォーム対応。 コマンド/環境の変換とアーキテクチャ不一致へのガードレールにより、Windows ↔ Linux ↔ macOS 間で再現できます。

インストール

npm install -g bugproof

要件: Node.js 18 以降と Git。オプションの言語ツールチェーン(Python、Java、Go、Rust など)は、記録したコマンドで使用する場合にのみ必要です。

インストール後に、ヘルスチェックを一度実行してください。

bugproof doctor

GitHub Action — CI の失敗を自動でキャプチャ

GitHub Actions のワークフローに 1 つのステップを追加するだけで、不安定または失敗するコマンドを .bug アーティファクトとして自動でキャプチャできます。

- name: Capture flaky test
  uses: sidinsearch/BugProof/.github/actions/bugproof-action@main
  with:
    command: 'npm test -- --run flaky-suite'
    name: flaky-test-failure
    timeout: 300000

仕組み:このアクションは npmjs.org から bugproof をインストールし(npm install -g bugproof)、コマンドを bugproof capture でラップします。失敗すると、.bug アーティファクトが Actions の実行にアップロードされます。開発者はそれをダウンロードし、bugproof replay でローカル環境にて再現できます。

ユースケース:

  • 不安定な CI テスト:失敗の詳細をキャプチャしてローカルでデバッグできます
  • クロスプラットフォームの失敗:Linux CI ではテストが成功するのに macOS では失敗する場合、両方の失敗をキャプチャして差分を比較できます
  • 断続的なクラッシュ:bugproof capture -- node app.js を実行すると、クラッシュ時の状態、環境、ソースがまとめられます

すべての入力:

入力必須デフォルト説明
command✅—キャプチャするコマンド(例:npm test)
name—bug_<timestamp>アーティファクト名
timeout—300000コマンドのタイムアウト(ミリ秒)
skip-secrets—false環境変数のシークレットスキャンをスキップ
upload-artifact—true.bug ファイルを Actions アーティファクトとしてアップロード
node-version—24bugproof 用の Node.js バージョン

このリポジトリでは、アクションは .github/actions/bugproof-action/action.yml にあります。uses: sidinsearch/BugProof/.github/actions/bugproof-action@main で参照してください。BugProof は常に npmjs.org からインストールされるため、GitHub Packages のトークンは不要です。


MCP サーバー — AI エージェントとの連携

BugProof には、AI エージェント向けに 10 個のツールとリソース、プロンプトを提供する MCP(Model Context Protocol)サーバー が組み込まれています。公式 MCP Registry に io.github.sidinsearch/bugproof として登録されています。

セットアップ
Claude Code

~/.claude/settings.json に追加します:

{
  "mcpServers": {
    "bugproof": {
      "command": "npx",
      "args": ["-y", "bugproof", "mcp"]
    }
  }
}
Cursor

Cursor の MCP 設定(Settings → Features → MCP)に追加します:

{
  "mcpServers": {
    "bugproof": {
      "command": "npx",
      "args": ["-y", "bugproof", "mcp"]
    }
  }
}
Continue.dev

~/.continue/config.json に追加します:

{
  "experimental": {
    "mcpServers": {
      "bugproof": {
        "command": "npx",
        "args": ["-y", "bugproof", "mcp"]
      }
    }
  }
}
bugproof がグローバルにインストールされている場合

bugproof がすでにグローバルにインストールされている場合(npm install -g bugproof)、npx -y を省略します:

{
  "mcpServers": {
    "bugproof": {
      "command": "bugproof",
      "args": ["mcp"]
    }
  }
}

MCP を別途インストールする必要はありません。 npx -y bugproof mcp は npmjs.org から自動でダウンロードし、stdio 経由でサーバーを起動します。

ツール
ツール説明AI エージェントでの使用例
captureコマンドを実行し、.bug アーティファクトとしてキャプチャ「この失敗するテストをキャプチャして、何が変わったか教えてください」
replay.bug ファイルを再生し、判定結果を返す「CI のアーティファクトを再生して、まだ失敗するか確認してください」
inspectアーティファクトのメタデータを表示「実行せずに、この .bug ファイルの内容を教えてください」
diff2 つのアーティファクトを比較「CI でのキャプチャとローカルでのキャプチャを比較して、違いを教えてください」
doctorサンドボックスの機能を確認「このマシンは完全なサンドボックス分離に対応していますか?」
shareGitHub Gist 経由でアーティファクトを共有「このバグをチームと共有してください」
pullGist からアーティファクトをダウンロード「この URL からバグのアーティファクトを取得してください」
watchコマンドの失敗時に自動でキャプチャ「npm test を監視して、失敗したらキャプチャしてください」
listディレクトリ内の .bug アーティファクトを一覧表示「このプロジェクト内のバグのアーティファクトをすべて表示してください」
clean.bug アーティファクトを削除「このディレクトリ内の古いバグのアーティファクトを削除してください」
リソース

AI エージェントは、リソース URI を通じて .bug アーティファクトの内容を直接読み取れます。

  • bugproof://artifact/{path} — 生の .bug アーティファクトを読み取ります(base64 エンコードされた ZIP)
プロンプト

よくある AI エージェントのタスク向けに、あらかじめ用意されたワークフローです。

プロンプト説明
capture-failure失敗するコマンドを .bug アーティファクトとしてキャプチャする手順
replay-and-analyzeアーティファクトを再生し、根本原因を分析する手順
compare-bugs2 つのアーティファクトを比較し、差分を見つける手順
AI セッションの例
User:   Capture the failing test and tell me what went wrong
Agent:  [calls bugproof capture -- npm test -- --run flaky-suite]
        [calls bugproof inspect on the result]
        "The test failed with a timeout. Fingerprint matches a known
         Redis-unreachable pattern. Here's the captured stderr..."

MCP サーバーは stdio(JSON-RPC 2.0)経由で通信します。ローカルの bugproof CLI を --json 出力付きでシェルから実行し、人が読める概要と生データの両方を含む構造化された結果を返します。bugproof がインストールされていない場合は、npx -y が npmjs.org から取得するため、グローバルインストールは不要です。


AI エージェントスキル

BugProof には、AI コーディングエージェント(Claude Code、Cursor、OpenCode、OpenClaw、Gemini CLI、GitHub Copilot など)に BugProof の効果的な使い方を教える、配布可能な AI エージェントスキルが含まれています。このスキルはオープンな Agent Skills 標準に準拠しているため、一度作成すれば、互換性のあるあらゆるエージェントで使用できます。

スキルの機能

読み込むと、このスキルによって AI エージェントは次のすべてを把握できます。

  • フラグと例を含む、BugProof の全 14 コマンド
  • キャプチャ、再生、差分、検査のワークフロー
  • クロスプラットフォームでの再生パターン
  • MCP サーバーの設定
  • 命名、セキュリティ、アーティファクト管理のベストプラクティス
  • 実際の 8 つの例(Node.js、Python、Go、Java、CI/CD、クロスプラットフォーム、不安定なテスト)
AI エージェントでの使用方法

ユーザーが次のように言及すると、エージェントはスキルを自動で読み込みます。

  • 「このバグをキャプチャして」
  • 「このバグを再生して」
  • 「この失敗を再現して」
  • 「このバグを共有して」
  • 「.bug ファイル」
  • 「自分のマシンでは動く」
  • 「実行可能なバグ」

または、/bugproof を直接実行します。

スキルのインストール
オプション 1:このリポジトリをクローンする
# Clone the BugProof repository
git clone https://github.com/sidinsearch/BugProof.git

# Copy the skill to your agent's skills directory
# Claude Code:
cp -r BugProof/skills/bugproof ~/.claude/skills/

# OpenCode:
cp -r BugProof/skills/bugproof ~/.config/opencode/skills/

# OpenClaw:
cp -r BugProof/skills/bugproof ~/.agents/skills/

# Cursor:
cp -r BugProof/skills/bugproof ~/.cursor/skills/
オプション 2:スキルを直接ダウンロードする
# Download just the skill
curl -L https://github.com/sidinsearch/BugProof/archive/refs/heads/main.tar.gz | tar xz
cp -r BugProof-main/skills/bugproof ~/.claude/skills/
スキルの構成
skills/bugproof/
├── SKILL.md                    # Main instructions (required)
├── reference/
│   └── commands.md             # Full command reference
└── examples/
    └── usage-examples.md       # Real-world usage examples
対応する AI エージェント
エージェントスキルディレクトリ
Claude Code~/.claude/skills/bugproof/
OpenCode~/.config/opencode/skills/bugproof/
OpenClaw~/.agents/skills/bugproof/
Cursor~/.cursor/skills/bugproof/
Gemini CLI~/.gemini/skills/bugproof/
GitHub Copilot.github/skills/bugproof/

このスキルはオープンな Agent Skills specification に準拠しています。標準に対応するエージェントであれば、どれでも使用できます。


60 秒クイックスタート

# 1. Reproduce a failure
$ npm test
FAIL  Tests failed because Redis was unreachable.

# 2. Capture it
$ bugproof capture -- npm test
  ✔  Artifact captured!
  Path        ./bug_1778049738215.bug
  Files       42 files (28.4 KB)
  Fingerprint sha256:c8b3...

# 3. Share the file (Slack, email, gist, attachment...)

# 4. Anyone replays it on their machine
$ bugproof replay bug_1778049738215.bug
  ✔  REPRODUCTION CONFIRMED
  Exit code    exit 1 (match)
  Verdict      Reproduction confirmed (exact fingerprint match)

任意のフロー:

$ bugproof inspect bug.bug        # peek at the contents
$ bugproof diff old.bug new.bug   # what changed between two captures
$ bugproof share bug.bug          # publish as a GitHub Gist

コマンド

BugProof には14 個のコマンドが含まれています。すべてのコマンドで、機械可読な出力を得るための --help と --json を使用できます。

コマンド目的
bugproof captureコマンドを実行してすべてを記録し、.bug アーティファクトを生成します
bugproof replayアーティファクトを再実行し、予期されるフィンガープリントと比較します
bugproof watchコマンドを透過的にラップし、失敗した場合にのみキャプチャします
bugproof inspectアーティファクトの内容(マニフェスト、コマンド、フィンガープリント、ファイル)を表示します
bugproof diff2 つのアーティファクトを並べて比較します
bugproof verify.bug の Ed25519 署名を検証します(単独で実行)
bugproof keygenアーティファクト署名用の Ed25519 キーペアを生成します
bugproof shareアーティファクトを GitHub Gist として公開します
bugproof mcpAI エージェントとの連携用に MCP サーバーを起動します
bugproof init.bugproofrc 設定ファイルのひな形を作成します
bugproof prune孤立したサンドボックスの一時ディレクトリをガベージコレクションします
bugproof cleanカレントディレクトリからすべての .bug アーティファクトを削除します
bugproof pullGitHub Gist から共有された .bug アーティファクトをダウンロードします
bugproof doctorサンドボックス分離機能に対する OS のサポートを確認します
bugproof help任意のコマンドのヘルプを表示します
bugproof capture [command...]

コマンドを最初から最後まで実行し、失敗を <name>.bug としてまとめます。

bugproof capture -- npm test
bugproof capture -n auth-crash -d "Login fails on expired session" -- node server.js
bugproof capture -o ./bugs/ -- npm test
bugproof capture --include-untracked -- python app.py
bugproof capture -x "*.log" -x "node_modules/**" -- go test ./...
bugproof capture --timeout 600000 -- java -cp . Main
bugproof capture --include-compiled -- mvn test    # force include .class/.jar files
bugproof capture --sign --signer "[email protected]" -- ./run.sh
bugproof capture --json -- node script.js
フラグ説明
-n, --name <name>アーティファクト名(<name>.bug になります)
-d, --description <desc>マニフェストに埋め込まれる、人が読める説明
-o, --output <dir>出力ディレクトリ(デフォルト:カレントディレクトリ。.bugproofrc の outputDir に従います)
-x, --exclude <pattern>glob でファイルを除外します(繰り返し指定可能)
--include-untracked未追跡ファイルもまとめます(git ls-files -o)
--include-compiledコンパイル済みのアーティファクト(.class、.jar、.pyc など)を強制的に含めます(デフォルトでは自動検出)
--timeout <ms>N ミリ秒後にコマンドを終了します(デフォルト:300000)
--skip-secrets環境変数のシークレットをスキャンしません(確認プロンプトをスキップします)
--sign [key]デフォルトのキー、または名前付きキー/.key ファイルへのパスで署名します
--signer <id>署名者の識別情報(メールアドレス、gist URL など)を埋め込みます
--json構造化 JSON 出力

デフォルトの動作: -n を指定しない場合、アーティファクト名は bug_<timestamp>.bug になります。.bugproofrc で nameTemplate が設定されている場合は、そのテンプレートが使用されます。-o を指定しない場合、アーティファクトはカレントディレクトリに保存されます。


bugproof replay <artifact>

キャプチャしたアーティファクトを再実行し、結果を比較します。

bugproof replay bug.bug
bugproof replay bug.bug --sandbox isolated
bugproof replay bug.bug --self-heal
bugproof replay bug.bug --verify-signature
bugproof replay bug.bug --source-dir .
bugproof replay bug.bug --json
フラグ説明
--sandbox <level>workspace(デフォルト)、isolated、または full
--self-heal不足している npm/pip の依存関係を自動インストールして再試行します(最大 3 回)
--verify-signature有効な Ed25519 署名を必須とします。署名がないか無効な場合は 2 で終了します
--source-dir <dir>git 操作用のソースディレクトリを上書きします(キャプチャ時のパスではなく、カレントディレクトリのリポジトリを使用します)
--json構造化 JSON 出力

リプレイの分離: リプレイは常に分離された一時ディレクトリで実行されます。ファイルは次のいずれかから取得されます:(1)キャプチャ時のコミットにおける git worktree/クローン、(2)元のパスにアクセスできない場合はカレントディレクトリの git リポジトリ、または(3)アーティファクトに同梱された files/ スナップショット。ソースファイルの読み込みにカレントディレクトリが使われることはありません。


bugproof keygen / verify — 暗号学的な来歴

Ed25519(RFC 8032)でアーティファクトに署名します。Node のネイティブな crypto を基盤としており、外部依存関係はありません。

# One-time: create your signing key
bugproof keygen
# → writes default.pub / default.key to ~/.bugproof/keys/

# Capture with a signature
bugproof capture --sign --signer "[email protected]" -- npm test

# Verify a received artifact
bugproof verify bug.bug
  ✔  SIGNATURE VALID
  Algorithm   ed25519
  Fingerprint 179721ef7e63f6b3
  Signed at   2026-05-10T22:09:30Z
  Signer      [email protected]

# Enforce signatures at replay time
bugproof replay --verify-signature bug.bug

署名の対象は、マニフェストの正規化されたハッシュ、失敗のフィンガープリント、バンドル内の各ファイルの SHA-256 です。ソース、出力、終了コード、メタデータを改ざんすると、署名は無効になります。

注: ID/PKI は意図的に対象外です。埋め込まれた公開鍵のフィンガープリントを、既知のもの(gist へのピン留め、チームの wiki、キーサーバーなど)と照合して信頼性を確認します。


bugproof watch [command...]

透過的なラッパーです。コマンドを通常どおり実行し、失敗した場合にのみキャプチャします。手動で実行する代わりに、そのまま置き換えて使えます。

bugproof watch -- npm test
bugproof watch -o ./bugs -- python app.py
bugproof watch --always -- node script.js    # capture even on success

bugproof inspect <artifact> / diff <a> <b>
bugproof inspect bug.bug                          # manifest, fingerprint, file list, env schema
bugproof diff captured-v1.bug captured-v2.bug     # what changed between two captures

bugproof share <artifact>

アーティファクトを GitHub Gist として公開します。企業ネットワークでは HTTPS_PROXY / HTTP_PROXY に従います。

bugproof share bug.bug
bugproof share --public bug.bug

gist スコープを持つ GITHUB_TOKEN(または BUGPROOF_GITHUB_TOKEN)が必要です。


bugproof init / prune / doctor
bugproof init       # scaffold .bugproofrc in the current directory
bugproof prune      # garbage-collect orphan BugBox temp directories
bugproof doctor     # check OS support for sandbox isolation (namespaces, Job Objects, Seatbelt)

設定(.bugproofrc)

bugproof init によって生成されます。すべてのフィールドは任意です。

{
  "exclude": ["node_modules/**", "dist/**", "*.bug"],
  "outputDir": ".",
  "timeout": 300000,
  "skipSecrets": false,
  "includeUntracked": false
}

スマートソース戦略

BugProof は、大規模なコードベースでもアーティファクトを小さく保ちます。

戦略使用条件含まれるもの一般的なサイズ
git-fullクリーンな git リポジトリコミット参照のみ約 2 KB
git-patch変更のある git リポジトリコミット参照と差分パッチ約 5 KB
git-files強制モード/未追跡ファイルあり追跡対象および未追跡の全ファイル変動
full-copygit リポジトリがないコードベース全体(node_modules などを除く)約 10~100 MB

git の使用を強く推奨しますが、必須ではありません。

コンパイル言語のサポート

BugProof はコンパイル言語を自動検出し、ビルド成果物を自動的にバンドルします。

言語ソースファイルコンパイル済み成果物自動的に含めるか
Java.java.class、.jar、.war、.ear✅ はい(target/、build/、out/ から)
Python.py.pyc、.pyo✅ はい(__pycache__/ から)
Go.gobin/、コンパイル済みバイナリ✅ はい(bin/、dist/ から)
Rust.rstarget/ のバイナリ✅ はい(target/ から)
.NET/C#.cs、.csproj.dll、.exe✅ はい(bin/、obj/ から)
WebAssembly—.wasm✅ はい(すべてのビルドディレクトリから)
Node ネイティブ—.node✅ はい(build/、dist/ から)
C/C++.c、.cpp.o、.obj、.exe❌ いいえ(プラットフォーム固有のため、ソースのみ)

仕組み: BugProof がコンパイル言語のプロジェクト(pom.xml、go.mod、Cargo.toml など)を検出し、標準のビルドディレクトリ内にコンパイル済み成果物を見つけると、それらを自動的に含めます。フラグは不要です。

自動検出で見落とされたものを強制的に含める場合や、特殊なケースには、--include-compiled を使用してください。


サンドボックスと分離モデル

BugProof は、ネイティブ OS プリミティブ上に構築された Docker のような分離環境で、リプレイするコマンドを実行します。

レイヤーLinuxWindowsmacOS
プロセスPID 名前空間(unshare --pid)Job Objectssandbox-exec
ネットワークNetwork 名前空間(unshare --net)netsh advfirewall ルール(deny network*)
ファイルシステムfuse-overlayfs(RO ソース+書き込み可能なオーバーレイ)分離された一時ディレクトリ書き込みパスの制限
リソース制限cgroups v2(メモリ、CPU、PID)Job Object の制限—
環境変数のサニタイズLD_PRELOAD、NODE_OPTIONS などを削除同様同様
一時領域プライベートな /tmpプライベートな %TEMP%プライベートな /tmp

--sandbox を使って、3 段階のサンドボックスレベルを指定できます。

  • workspace (デフォルト) — 最小限の分離で高速です。信頼できる成果物に適しています。
  • isolated — 名前空間と一時領域による分離です。信頼できない成果物に推奨されます。
  • full — ネットワーク拒否やリソース制限など、すべてのレイヤーを適用します。

注意: Windows では、isolated と full による強化はベストエフォートであり、VM レベルの封じ込めではありません。完全に信頼できないソースの成果物は、専用の VM 内でリプレイしてください。


環境スナップショット

キャプチャ時のランタイムバージョンを記録し、リプレイ時に差分を比較します。

  Environment Mismatches
    •  node version mismatch: captured 18.0.0, current 22.1.0
    ✘  python 3.11.0 was available at capture but is not installed now.

追跡対象:Node.js、Python、Ruby、Go、Rust、Java、npm、pip、OS プラットフォーム、アーキテクチャ。


クロスプラットフォームでのリプレイ

キャプチャ ↘ / リプレイ ↗WindowsLinuxmacOS
Windows✅✅✅
Linux✅✅✅
macOS✅✅✅

変換レイヤーはコマンド(python3 ↔ python、gradlew ↔ gradlew.bat、make ↔ mingw32-make、シェルのパス)を正規化します。アーキテクチャの不一致(x64 ↔ arm64)がある場合は、Rosetta や変換に関するアドバイスを含む明示的な警告が表示されます。


セキュリティモデル

領域仕組み
シークレット — 既知のパターン*_TOKEN、*_KEY、*_SECRET に一致する環境変数や、AWS/GCP/Stripe の形式は、取得時にマスキングされます
シークレット — 未知の値シャノンエントロピー解析により、無害に見えるキー名でもエントロピーの高い値(1文字あたり4.5ビット以上)を検出します
stdout/stderr のスクラビングアクティブな正規表現ストリームスクラバーが、取得した出力からメールアドレス、IP アドレス、クレジットカード番号、GitHub トークン、Stripe キーを除去します
パストラバーサルすべてのファイルコピーについて、アーティファクトとプロジェクトの境界内に収まることを検証します
スクリプトインジェクションサンドボックスコマンドは引数配列で起動します。シェル文字列経由では決して実行しません
来歴Ed25519 署名は、マニフェスト、フィンガープリント、ファイルごとの SHA-256 を対象とします。検証はローカルで行われ、ネットワーク呼び出しはありません
サンドボックス環境のサニタイズLD_PRELOAD、NODE_OPTIONS、DYLD_* など、ランタイムを乗っ取る可能性のあるベクトルは、再現前に除去されます
暗号技術Node の標準 crypto のみを使用し、外部の暗号依存関係はありません。テレメトリも、ホームへの通信もありません

環境を自分で監査した場合に限り、--skip-secrets を使用してください。


ファイルの関連付け

Windows

HKCU\Software\Classes\.bug → BugProof.Artifact に登録され、open コマンドは node <package>/dist/cli.js replay "%1" です。

Linux

MIME タイプ application/x-bugproof、bugproof.desktop ハンドラー、~/.local/share/icons/hicolor/ 内のユーザーレベルのアイコンエントリーを登録します。

macOS

同梱スクリプトを使ったベストエフォートでの登録です。Finder の関連付けが有効にならない場合は、手動で再実行してください。

bash scripts/bugproof-file-association-macos.sh

アーキテクチャ

bugproof/
├── src/
│   ├── capture/          # Execution + env snapshot + language detection + packaging
│   ├── replay/           # Restore + sandbox orchestration + verdict + self-heal
│   ├── sandbox/          # OS-specific isolation (filesystem, network, process)
│   ├── share/            # Gist publisher
│   ├── diff/             # Two-artifact diff engine
│   ├── config/           # .bugproofrc loader and validation
│   ├── utils/            # signing, secrets, fingerprint, dependencies, security, …
│   └── cli.ts            # Commander entrypoint (14 commands)
├── tests/                # 40 suites / 502 tests (Jest)
├── scripts/              # Postinstall, e2e matrix, file-association helpers
└── .github/workflows/    # CI/CD (tri-platform matrix, signed npm publish)
モジュール担当
capture/engine.tsユーザーのコマンドを実行し、出力を一時ファイルにストリームし、stdout/stderr/終了ステータスを記録します
capture/packager.ts.bug zip にまとめ、必要に応じて Ed25519 で署名します
capture/language-support.tsNode/Python/Java/Go/Rust/.NET/C++/Kotlin を検出し、コンパイル済みアーティファクトも自動検出します
capture/env-snapshot.ts再現時の環境差分比較用に、ランタイムのバージョンを記録します
capture/source-strategy.tsソースをスマートに選択します:git-full、git-patch、stacktrace、minimal
replay/engine.tsサンドボックス内でコマンドを再現します
replay/self-heal.ts不足している依存関係を検出してサンドボックス内にインストールし、再試行します
replay/verdict.tsフィンガープリントと正規化されたエラーパターンを比較します
replay/hints.ts取得した出力から、実行可能なデバッグのヒントを生成します
sandbox/bugbox.tsOS ごとの分離レイヤーを制御します
sandbox/cross-platform.tsWindows/Linux/macOS 間でコマンドを変換します
utils/signing.tsEd25519 の署名/検証、および正規化ペイロードのビルダー
utils/secrets.tsパターンとエントロピーに基づく環境変数のスキャン、PII ストリームスクラバー
utils/fingerprint.ts決定論的な失敗のフィンガープリント生成、パスの正規化
utils/dependencies.tsstderr から不足している npm/pip/システム依存関係を検出します
utils/ui.tsターミナル UI:色、スピナー、プログレスバー、サマリーボックス
diff/engine.tsアーティファクトを左右に並べて比較します
share/gist.tsプロキシに対応した GitHub Gist パブリッシャー
config/loader.ts.bugproofrc 設定を読み込み、検証します

コントリビューション

PR を歓迎します。ガイドライン、開発環境のセットアップ、テストマトリックスの要件については、CONTRIBUTING.md を参照してください。すべての PR で 3 プラットフォームを対象とした CI 全体が実行されます。新しい動作にはテストを追加してください。


ライセンス

このプロジェクトは、GNU Affero General Public License v3.0(AGPL-3.0)の下でライセンスされています。

使用ケース許可されていますか?
個人利用および非商用利用✅ 無料で、制限はありません
フォークおよび改変✅ AGPL-3.0 の下でソースコードとともに公開する必要があります
ネットワークサービス(SaaS)としての運用✅ 改変したソースコードを公開する必要があります
商用利用/プロプライエタリな利用❌ 別途商用ライセンスが必要です

❤️ を込めて sidinsearch が制作  ·  Copyright © 2026 sidinsearch  ·  AGPL-3.0 ライセンス

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。