Faultline について
Faultline は、AI 生成テキストを個々の事実主張に分解し、証拠に照らして検証するサービスです。AI 出力を評価するチーム向けで、CLI と API のほか、CI ビルドの判定にも対応します。
主な機能
- 01原子的な主張の抽出と分類
- 02証拠と信頼度スコアによる主張の検証
- 03スキャンの比較と判定変更の追跡
- 04リスクやレポート条件に基づく CI ビルドの制御
- 05JSON、Markdown、HTML、SARIF 形式のレポート出力
- 06YAML ルールとコンプライアンステンプレートの適用
活用シーン
- 01AI 生成レポートの事実主張の確認
- 02リスクがしきい値を超えた場合の CI 失敗
- 032 回のスキャン間の変更確認
- 04文書群へのポリシーチェックの適用
MCP 対応
プロジェクトには MCP サーバーが含まれます。FAULTLINE_API_KEY を設定すると、ホスト API を介し、サーバー側のプロバイダーキーでスキャンを実行します。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://faultline-api.fly.dev/mcpclaude mcp add --transport http nxtg-ai-faultline https://faultline-api.fly.dev/mcp{"mcpServers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}Cursor で開く{"servers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}VS Code で開く{"mcpServers":{"nxtg-ai-faultline":{"type":"http","url":"https://faultline-api.fly.dev/mcp"}}}{"mcpServers":{"nxtg-ai-faultline":{"serverUrl":"https://faultline-api.fly.dev/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
https://faultline-api.fly.dev/mcp認証が必要ツール
詳細
Faultline — AI の出力の根拠を確認します。
エージェントスタックを将来にわたって使えるものにしましょう。すべてのモデルベンダーから独立しています。NXTG.ai は、Faultline がチェックするモデルを開発していません。
Faultline は AI が生成した出力を個々の主張に分解し、それぞれを最新の証拠に照らして検証します。また、その結果に基づいて CI ビルドを失敗させることもできます。
リリース段階:アルファ。 現在ご利用いただけますが、まだ不安定な部分があります。精度の数値は公表していません。判定精度は、独立した再評価をまだ受けていません。バージョン 1.0 までに、あらゆる点が変更される可能性があります。
API が生成するガバナンス記録
ホスト型 API は、コードとして 3 種類のガバナンス記録を提供します。リスク登録簿のエクスポート(POST /scan/risk-register)、改ざんを検知できる監査ログのマニフェスト(GET /audit/log/manifest、管理者キーのみ)、および人間による承認記録(POST /scans/:id/approve、GET /scans/:id/approvals)です。マニフェストでは、各チェーンハッシュは、エントリーハッシュと直前のチェーンハッシュを連結した値の SHA-256 です。Faultline のツールを使わず、openssl dgst -sha256 だけでチェーンを再計算できます。
現在のステータス(2026-10-01 確認)
| 項目 | 状態 | 確認方法 |
|---|---|---|
| npm の CLI | @nxtg/faultline 0.11.1 | npm view @nxtg/faultline version |
| ホスト型 API | https://faultline-api.fly.dev、バージョン 0.11.1 | curl https://faultline-api.fly.dev/health |
| Web アプリ | https://faultline.nxtg.ai(別リポジトリの faultline-web、Vercel 上で稼働) | 2026-10-01 にライブの料金ページを確認 |
| プラン | Free:月 5 回のスキャン。Personal:月額 $19、100 回のスキャン。Pro:月額 $49、500 回のスキャン。Enterprise:カスタム、スキャン上限は契約で設定 | https://faultline.nxtg.ai/pricing |
| 複数モデルのコンセンサス | Enterprise のみ。 Enterprise 未満のプランの呼び出し元には、ストリームが開く前に API が 403 consensus_not_in_plan を返します | packages/api/src/plugins/consensus-entitlement.ts;fp によるライブ確認、2026-10-01(pro、personal、free は 403、enterprise は 200、モックプロバイダー) |
POST /critique | API キーが必要です。レート制限があります。プロバイダー支出上限の対象で、支出台帳に記録されます | packages/api/src/routes/critique.ts |
| プロバイダー支出上限 | 月額 $100。台帳には、管理対象のすべてのスキャンと批評が記録されます。適用機能は無効の状態でリリースされています(FAULTLINE_PROVIDER_SPEND_CAP=on で有効化)。本番環境では無効です | docs/provider-spend-cap.md;2026-10-01 に GET /usage で providerBudget.enforced=false を確認 |
| API 側のキーごとの月間スキャン上限 | 無効(FAULTLINE_USAGE_CAP)。上記のプラン制限は faultline-web によって適用されます | docs/usage-cap.md |
機能
| 機能 | 説明 |
|---|---|
| アトミックな主張の抽出 | AI の出力を、重要度スコアリングを行いながら事実/意見/解釈に分解します |
| 主張ごとの検証 | 判定:裏付けあり/矛盾あり/混在/未検証 + 信頼度スコア |
| スキャンの比較 | POST /scan/compare + faultline compare — 新規/削除された主張、判定の変化、信頼スコアの差分 |
| CI ゲート | faultline compliance-report --ci は、スキャン全体のリスクが高または重大である場合、レポート内の記事チェックに失敗した場合、レポートのドメインチェックリスト項目が合格していない場合、またはレポートスコアが --threshold を下回る場合に終了コード 1 を返します。--strict を指定すると、一部のみ満たされた記事チェックと、未評価のチェックリスト項目でも失敗します。それ以外の場合は終了コード 0 を返します |
| 最も脆弱な箇所の検出 | 主張ごとの脆弱性スコアリングにより、論旨を最も損なう主張を特定します |
| 主張の依存関係グラフ | Mermaid および Graphviz DOT による可視化 |
| ルールエンジン | YAML で定義するルール。PII、バイアス、毒性に関する組み込みルールセット |
| CI ゲート | --fail-on high は終了コード 1 を返します。GitHub Code Scanning 向けに SARIF を出力します |
| エンタープライズ API | キー管理、監査証跡、レート制限、ウェブフック、一括スキャン、キャッシュを備えた REST API(約 190 ルート) |
| プロバイダーのフェイルオーバー | Gemini → OpenAI → Claude → Perplexity の順に自動切り替え。5 分のクールダウンを備えたサーキットブレーカー |
| モニタリング | GET /health/deep、GET /metrics(Prometheus)、GET /status(HTML ダッシュボード) |
| スケジュール済みジョブ | POST /jobs — cron スケジュールに基づく定期スキャンとウェブフック配信 |
| インテグレーション | sdks/python の Python クライアントソース、MCP サーバー packages/mcp、Terraform プロバイダー packages/terraform-provider、GitHub Action nxtg-ai/faultline-action(SDK とインテグレーションを参照) |
| マルチテナント | テナントの CRUD、API キーの関連付け、テナントごとの使用状況の集計 |
| コスト追跡 | スキャンごとのトークン数/コストの推定。プロバイダー/テナント/日付で絞り込める GET /costs |
| スキャン履歴 | GET /scans/search — API キーに紐付く過去のスキャンを全文検索(管理者キーの場合はすべて)。カーソルページネーション |
| ルールテンプレート(HIPAA、SOX、FERPA、Gov) | HIPAA/SOX/FERPA/Gov のテンプレート。POST /scan/compliance/:template |
| 一括インポート | POST /scan/bulk — ドキュメントの ZIP、非同期ジョブ、GET /jobs/:id/progress |
| Swagger UI | GET /docs — すべてのエンドポイントで「試してみる」を利用できる、対話型の OpenAPI 3.0 仕様 |
| 主張の説明可能性 | GET /claims/:id/explain — 推論チェーン、見つかった証拠、実行可能な提案 |
| スキャン差分 | POST /scan/diff — 2 つのテキストをスキャンし、インライン差分を表示(追加/削除/変更/変更なし) |
| 期限一覧 | GET /compliance/deadlines — 今後の規制上の日付と、それぞれの日付までの日数の一覧。評価は行いません |
| 期限キーワードチェック | POST /compliance/scan-check — 主張のテキストを、該当する日付に関連付けられたキーワードと照合します |
| i18n | Accept-Language: es/fr/en — ローカライズされたエラーメッセージとレポートのラベル(EN/ES/FR) |
| プロパティベーステスト | fast-check によるオラクルカバレッジ:信頼度の境界値、重複排除の不変条件、コスト集計、ソートの安定性 |
| GDPR データリクエスト(第 15 条のエクスポート、第 17 条の消去) | 第 15 条のエクスポート(GET /tenants/:id/export → ZIP)と第 17 条の消去(DELETE /tenants/:id/data)。スキャン履歴、監査ログ、通知、ウェブフック、コスト、スケジュールが対象です |
| マルチモデル合意 | pipelineConfig.consensus: true を指定した POST /scan/stream。エンタープライズ限定で、エンタープライズ未満ではサーバー側で拒否されます(403) |
| 主張の批評 | POST /critique:失敗した主張への批評と改善されたプロンプト。API キー、レート制限、プロバイダーへの支出上限が適用されます |
| リアルタイムのスキャンストリーミング | GET /scan/stream?text=...&provider=mock — Server-Sent Events。onClaimVerified コールバックによる主張ごとの段階的な配信。start → claim_verified × N → complete をストリーミングします。ポーリングは不要です |
| ミューテーションテスト済みのコア | Stryker ゲート(CRUCIBLE Gate 6、しきい値 80%):cli/scan.ts 81.97%、stream.ts 88.64%、compliance-report.ts 80.81%、GDPR ストア 80.94%~96.81%。docs/mutation-testing.md によると、最終測定期間は 2026-03-21~2026-04-17 で、それ以降は再実行されていません |
機能
プロバイダー
| プロバイダー | 必要なもの | 最適な用途 |
|---|---|---|
| Gemini | GEMINI_API_KEY | ウェブ情報に基づくリアルタイムの検証(無料のキーを利用できます) |
| Perplexity | PERPLEXITY_API_KEY | リアルタイム検索を活用した検証 |
| OpenAI | OPENAI_API_KEY | 学習データの検証、GPT エコシステム |
| Claude | ANTHROPIC_API_KEY | 学習データの検証、推論を多用するドキュメント |
| Mock | なし | CI パイプライン、ユニットテスト、オフライン開発。合成判定を返すだけで、何も検証しません。CLI が暗黙的にこのプロバイダーへフォールバックすることはありません |
--provider <name> でプロバイダーを切り替えられます。コードの変更は不要です。プロバイダーのキーも FAULTLINE_API_KEY も設定されていない場合、CLI は何も確認していないことを通知して終了し、判定を捏造しません(v0.10.1 以降)。FAULTLINE_API_KEY が設定されている場合、guard と MCP サーバーはホスト型 API 上で、サーバー側のプロバイダーキーを使ってスキャンを実行します。
ドキュメントの取り込み
- PDF と画像のアップロード(OCR 対応) —
faultline scan --file document.pdfまたはPOST /scan/upload。pdf-parseとtesseract.jsを使用します - テキストファイル —
--input doc.txt - ディレクトリ —
--dir ./docs --glob "*.md"
レポートとルール
- スキャンレポート(PDF) —
POST /scan/reportから生成できます - ルールエンジン — YAML で定義したルール:PII の検出、バイアスの指標、有害性のフラグ、カスタムルール
出力形式
json— プログラムによる処理、CI パイプラインmarkdown— PR、レポート、ドキュメントhtml— ブラウザーで閲覧できる監査レポートsarif— VS Code の「問題」パネル、GitHub Code Scanning(--sarifの省略形を指定するとresults.sarifに書き込みます)
エンタープライズ API
- API キー管理 —
POST /keys、GET /keys、GET /keys/:id、PATCH /keys/:id、DELETE /keys/:idによるライフサイクル全体の管理。一時的な無効化/有効化、スコープ付き権限(scan / report / upload / admin / pro) - キーの衛生管理 — 非アクティブなキーの検出(
GET /keys/dormant)、有効期限の通知(7日/1日のしきい値)、一括削除/無効化/有効化、使用状況分析(GET /keys/usage)、衛生管理ダッシュボード(GET /keys/usage/view) - 監査証跡 — すべてのリクエストについて、入力の SHA-256 ハッシュを記録。
GET /audit/log(クエリ+フィルター)、GET /audit/log/stats、GET /audit/log/export(NDJSON)。テナント単位の表示 - 使用量計測:
GET /usageによる、キーごとの日次スキャン数と月間クォータの状況(admin キーではプロバイダー支出予算も表示) - レート制限 — ティアごとの分あたりの上限:free は 10/min、pro は 100/min、admin は 10,000/min。
X-RateLimit-*ヘッダー - 支出とクォータのゲート:キーごとの月間スキャンクォータ(
402)と、プロバイダー支出の全体上限(503)。どちらも有効化するまでは休止状態です。支出台帳には、管理対象の各スキャンと/critiqueの呼び出しが、どちらの場合も記録されます - マルチテナント — テナントの CRUD(
POST /tenants)。スキャン履歴、通知、Webhook、監査ログなど、すべてのリソースをテナントごとに管理。GET /tenants/:id/usage - コスト追跡 — プロバイダーの料金に基づくスキャンごとのトークン数/コストの推定。
GET /costs(keyId/プロバイダー/日付によるフィルター+集計) - 使用状況ダッシュボード —
GET /dashboard:リアルタイムのスキャンフィード、プロバイダーの健全性、アクティブなキー、スキャン数(今日/今週/今月)、リスクの分布 - Webhook —
POST /webhooks。scan.complete/scan.failed/job.completeイベント。HMAC-SHA256 署名。Webhook ごとの再試行設定(maxAttempts 1–5、retryDelayMs)、レート制限(FAULTLINE_WEBHOOK_RATE_LIMIT)、サーキットブレーカー(FAULTLINE_WEBHOOK_CIRCUIT_THRESHOLD/COOLDOWN_MS)、配信ログ+ダッシュボード - バッチスキャン —
POST /scan/batch(1〜10 件のテキストを並行処理。部分的な失敗を許容するセマンティクス)。docs/ci-integration.md を参照してください - スキャン比較 —
POST /scan/compare:2 つのスキャン結果の差分(新規/削除された主張、判定の変更、信頼スコアの差)を表示 - キャッシュ — SHA-256 コンテンツハッシュキャッシュ。TTL は 24 時間(環境変数
FAULTLINE_CACHE_TTL_MS)。X-Cache: HIT/MISSヘッダー。GET /cache/stats、DELETE /cache - スケジュール済みジョブ —
POST /jobs:*/N * * * *の cron スケジュールによる定期スキャン。結果はwebhookUrlに送信 - プロバイダーのフェイルオーバー — Gemini → OpenAI → Claude → Perplexity → Mock の順に自動切り替え。5 回失敗するとサーキットブレーカーが作動し、5 分後にリセット。すべてのプロバイダーが停止している場合は
503 - スキャン履歴 — API キーごとに非公開(admin キーではすべて表示)。
GET /scans/search?q=による全文検索。古いスキャンの検出(GET /scans/stale)、使用状況分析(GET /scans/usage)、一括削除(DELETE /scans/stale)、衛生管理ダッシュボード、faultline scansCLI - ルールテンプレート(HIPAA、SOX、FERPA、Gov) — HIPAA/SOX+FINRA/FERPA/Government。
POST /scan/compliance/:template。カスタムテンプレートのアップロード - 一括インポート —
POST /scan/bulk(ドキュメントを ZIP でアップロード → 非同期ジョブ)。GET /jobs/:id/progress(進捗率+ファイルごとのステータス+概要) - モニタリング —
GET /health/deep(サブシステムのステータス+プロバイダー設定フラグ)、GET /metrics(Prometheus テキスト形式)、GET /status(HTML) - Swagger UI —
GET /docs(対話型 OpenAPI 3.0)、GET /docs/json、GET /docs/yaml - 主張の検索 —
GET /claims?text=&verdict=&from=&to=&source=による主張の全文インデックス検索 - GDPR データリクエスト(第 15 条に基づくエクスポート、第 17 条に基づく消去) —
GET /tenants/:id/export(第 15 条、admin のみ):マニフェスト、スキャン履歴、監査ログ(NDJSON)、通知、Webhook、使用状況、コスト、スケジュールを含む ZIP アーカイブ。DELETE /tenants/:id/data(第 17 条、admin のみ):テナントの 8 つのデータカテゴリに含まれるすべての個人識別情報(PII)を消去。冪等。テナントレコードは保持 - i18n — ローカライズされたエラーメッセージを使用するには、
Accept-Language: esまたはAccept-Language: frを送信します。デフォルトは英語です
クイックスタート(CLI)
ステップ 1: 無料の Gemini キーを取得します(クレジットカード不要):aistudio.google.com/apikey
ステップ 2:
export GEMINI_API_KEY="your-key"
npx @nxtg/faultline scan --input your-ai-output.txt --provider gemini
想定される出力(抜粋):
Provider: Google Gemini
Overall Risk: HIGH
--- Claim Verifications ---
[OK] c1: supported — Confirmed by census data. (confidence: 0.82)
[!!] c2: contradicted — Audit found significant bias. (confidence: 0.91)
[??] c3: mixed — Evidence varies by region. (confidence: 0.63)
その他のプロバイダー:
export ANTHROPIC_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider claude
export OPENAI_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider openai
export PERPLEXITY_API_KEY="..."
npx @nxtg/faultline scan --input doc.txt --provider perplexity
PDF または画像をスキャンする:
npx @nxtg/faultline scan --file report.pdf --provider gemini
npx @nxtg/faultline scan --file screenshot.png --provider gemini
パイプで渡されたエージェントの出力を確認する:
claude -p "..." | npx @nxtg/faultline guard --fail-on refuted
CI ゲート(API キー不要、合成判定、配線テストのみ):
npx @nxtg/faultline scan --input doc.txt --provider mock --fail-on high
# exit 0 = pass, exit 1 = HIGH or CRITICAL findings found
# --provider mock verifies nothing; use a real provider for a real gate
API クイックスタート
サーバーを起動します:
cd packages/api
FAULTLINE_API_KEY=your-key npm run dev
# Server listening on http://localhost:3010
テキストペイロードをスキャンします:
curl -X POST http://localhost:3010/scan \
-H "x-api-key: your-key" \
-H "Content-Type: application/json" \
-d '{"text": "GPT-4 has 1 trillion parameters.", "provider": "mock"}'
OCR スキャン用に PDF または画像をアップロードします:
curl -X POST http://localhost:3010/scan/upload \
-H "x-api-key: your-key" \
-F "[email protected]"
スキャンの PDF レポートを生成します:
curl -X POST http://localhost:3010/scan/report \
-H "x-api-key: your-key" \
-H "Content-Type: application/json" \
-d '{"text": "AI system processes medical records.", "provider": "mock"}' \
--output scan-report.pdf
API キーを作成します:
curl -X POST http://localhost:3010/keys \
-H "x-api-key: your-admin-key" \
-H "Content-Type: application/json" \
-d '{"name": "ci-pipeline", "tier": "pro", "permissions": ["scan", "report"]}'
Webhook を登録します:
curl -X POST http://localhost:3010/webhooks \
-H "x-api-key: your-admin-key" \
-H "Content-Type: application/json" \
-d '{"url": "https://your-service.example.com/hooks/faultline", "events": ["scan.complete"]}'
使用状況ダッシュボードを表示します:
curl http://localhost:3010/dashboard -H "x-api-key: your-key"
ホスト型 API:https://faultline-api.fly.dev(GET /health にキーは不要です)。実行中のサーバーで GET /docs にアクセスすると、インタラクティブなドキュメントを確認できます。
コンセンサスゲートを確認します(API キーが必要です。モックプロバイダーは費用がかかりません):
curl -X POST http://localhost:3010/scan/stream \
-H "x-api-key: your-key" -H "Content-Type: application/json" \
-d '{"text": "x", "provider": "mock", "pipelineConfig": {"consensus": true}}'
# below Enterprise: 403 {"error":"consensus_not_in_plan", ...}
ルートのリファレンス:packages/api/README.md。packages/api/docs/openapi.yaml の仕様はバージョン 0.7.0 を宣言し、48 個のパスを含んでいるため、現在のルートの一部のみをカバーしています。
アーキテクチャ
Input: AI-generated text / PDF / image
│
▼ Extract
Atomic claims (fact / opinion / interpretation, importance 1–5)
│
▼ Verify
Per-claim verdict (supported / contradicted / mixed / unverified)
Confidence score (0.0–1.0)
│
▼ Synthesize
Weakest-link detection — which claim collapses the argument?
Claim dependency graph — how do failures propagate?
│
▼ Refine
Critique of failed claims + improved prompt generation
モノレポの構成:
packages/
├── cli/ # @nxtg/faultline (npm 0.11.1): CLI + scan engine
│ ├── cli/ # Commands: scan, guard, report, watch, critique, graph, weakest, compare…
│ ├── providers/ # Gemini, Claude, OpenAI, Perplexity, Mock adapters
│ ├── compliance/ # EU AI Act risk categories
│ ├── rules/ # Rule engine (PII, bias, shell injection…)
│ ├── analysis/ # Weakest-link scoring, claim graph
│ ├── history/ # Scan history store
│ ├── consensus/ # Multi-model consensus engine
│ └── templates/ # Red-team prompt template library
├── api/ # @nxtg/faultline-api (not published to npm): Fastify v5 REST API, deployed on Fly
│ ├── src/routes/ # /scan, /scan/stream, /critique, /keys, /usage, /jobs…
│ ├── src/store/ # KeyStore, AuditLogger, CircuitBreaker, ScanCache, provider-spend ledger…
│ ├── src/plugins/ # Auth, rate limit, usage cap, provider-spend cap, consensus entitlement
│ └── docs/ # openapi.yaml (partial, version 0.7.0)
├── mcp/ # @nxtg/faultline-mcp 0.12.1: MCP server (not on npm as of 2026-10-01)
├── terraform-provider/ # Go Terraform provider
└── web/ # @nxtg/faultline-web: original React/Vite visualization app (Kaggle origin)
sdks/
└── python/ # Python client source (pyproject name faultline-sdk 0.5.0; not confirmed on PyPI, see SDKs)
https://faultline.nxtg.ai の本番 Web アプリは別のリポジトリ(faultline-web、Vercel 上の Next.js)にあります。このモノレポには含まれていません。
ストア(API レイヤー):
| ストア | 役割 |
|---|---|
KeyStore | API キーの CRUD、権限のスコープ設定 |
AuditLogger | SHA-256 リクエストハッシュ、追記専用ログ |
UsageMeter | キーごとの日次スキャン数 |
ScanAnalytics | リスク分布の集計、傾向データ |
RateLimiter | ティアごとの分単位の制限 |
WebhookStore | エンドポイント登録、HMAC シークレット管理 |
ScanCache | SHA-256 コンテンツハッシュキャッシュ、設定可能な TTL、ヒット率統計 |
CircuitBreaker | プロバイダーごとの失敗カウント、クールダウン管理 |
JobStore + JobScheduler | 定期スキャンジョブの CRUD、cron ベースのバックグラウンド実行 |
TenantStore | テナントの CRUD、API キーとテナントの関連付け |
CostStore | スキャンごとのトークン/コスト記録、プロバイダー料金テーブル、集計クエリ |
ProviderSpend(store/provider-spend.ts) | 月額 100 ドルのプロバイダー支出上限を管理する追記専用の USD 台帳と月次集計 |
ScanHistoryStore | 直近 1000 件のスキャン(新しい順)、全文検索とフィルター検索、カーソルページネーション |
ComplianceTemplateStore | HIPAA/SOX/FERPA/Gov テンプレートとカスタムテンプレートのレジストリ |
BulkJobStore | 非同期 ZIP スキャンジョブ:進捗追跡、ファイルごとの結果、サマリーレポート |
CLI コマンド
# Scan
faultline scan --input doc.txt --provider gemini
faultline scan --input doc.txt --provider claude --output-format markdown
faultline scan --input doc.txt --sarif # writes results.sarif
faultline scan --input doc.txt --fail-on high # exit 1 if high/critical
faultline scan --file document.pdf # PDF/image via OCR
faultline scan --dir ./docs --glob "*.md" # batch scan directory
# Compare two texts side-by-side
faultline compare --before "old-doc.txt" --after "new-doc.txt" --provider mock
faultline compare --before "old text" --after "new text" --output-format json
# Forensics
faultline weakest --input doc.txt --provider gemini # weakest-link claim
faultline graph --input doc.txt --format mermaid # claim dependency graph
faultline critique --input doc.txt --provider gemini # critique + improved prompt
# Agent output
claude -p "..." | faultline guard --fail-on refuted # verify piped text, gate on the verdict
# Red-team
faultline scan --templates injection,bias # template library
faultline templates list --category injection
# History + trends
faultline history
faultline trend --file doc.txt
# Utilities
faultline stats # npm download stats
faultline stats --costs --api-url http://localhost:3010 --api-key <key>
faultline rules # list detection rules
faultline init # generate .faultlinerc.json
faultline --version
faultline --help
SDK とインテグレーション
TypeScript / Node.js
このリポジトリには TypeScript SDK パッケージはなく、@nxtg/faultline-sdk は npm にありません(2026-10-01 の npm view は 404 を返しました)。REST API を直接呼び出すか、CLI(@nxtg/faultline)を使用してください。
const res = await fetch('https://faultline-api.fly.dev/scan', {
method: 'POST',
headers: { 'x-api-key': process.env.FAULTLINE_API_KEY!, 'Content-Type': 'application/json' },
body: JSON.stringify({ text: 'GPT-4 has 1 trillion parameters.', provider: 'gemini' }),
});
const result = await res.json();
console.log(result.overallRisk); // 'low' | 'medium' | 'high' | 'critical'
Python
ソースは sdks/python にあります(pyproject 名は faultline-sdk、バージョンは 0.5.0、実行時依存関係はありません)。チェックアウトからインストールします:
pip install ./sdks/python
pip install faultline-sdk は実行しないでください。2026-10-01 時点で PyPI にあるその名前のプロジェクト(バージョン 0.24.0)は、別のプロジェクト(「Faultline Cloud」用の ML トレーニングチェックポイント)です。このパッケージが別の名前で PyPI に公開されたことがあるかどうかは確認されていません。
from faultline_sdk import FaultlineClient
client = FaultlineClient(api_key="your-key", base_url="http://localhost:3010")
result = client.scan("GPT-4 has 1 trillion parameters.")
print(result.overall_risk) # 'low' | 'medium' | 'high' | 'critical'
MCP サーバー
packages/mcp(@nxtg/faultline-mcp 0.12.1)は、Claude Code、Cursor、その他の MCP クライアントに verify_claims ツールを公開します。2026-10-01 時点で npm には公開されていなかったため(npm view は 404 を返しました)、チェックアウトから実行してください。詳細は packages/mcp/README.md を参照してください。
インストール不要でホスト型を利用できます:デプロイ後、API は POST /mcp(Streamable HTTP、ヘッダー x-api-key)で同じツールを提供します。エンドポイントは https://faultline-api.fly.dev/mcp です。すべてのスキャンゲートが適用されます。docs/INTEGRATION.md §13 を参照してください。
GitHub Action
このアクションは独自のリポジトリ nxtg-ai/faultline-action にあります(タグ v1 が存在します)。
- uses: nxtg-ai/faultline-action@v1
with:
input: docs/release-notes.md
fail-on: high
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
CI 統合
以下については、docs/ci-integration.md をご覧ください。
- GitHub Actions のワークフロー(実際のプロバイダーとモック)
- GitLab CI の例
- ステージング済みファイル用のプリコミットフック
- CI ゲートロジックを使用した API ベースの一括スキャン
- リスクレベルの参照表
GitHub Actions の簡単な例:
- name: Faultline Claim Audit
env:
GEMINI_API_KEY: ${{ secrets.GEMINI_API_KEY }}
run: |
npx @nxtg/faultline scan \
--input docs/release-notes.md \
--provider gemini \
--fail-on high \
--output-format sarif > results.sarif
他との違い
Promptfoo はプロンプトをテストします。DeepEval は RAG パイプラインをスコアリングします。Faultline は、AI が実際に何を述べたかを監査します。
| Faultline | Promptfoo | DeepEval | |
|---|---|---|---|
| AI の出力を個別の主張に分解 | はい | いいえ | いいえ |
| 実際のエビデンスに照らして主張を検証 | はい | いいえ | いいえ |
| 主張ごとの信頼度キャリブレーション | はい | いいえ | いいえ |
| 最も弱いリンクの検出 | はい | いいえ | いいえ |
| 主張の依存関係グラフ | はい | いいえ | いいえ |
| スキャンの比較(2 つの出力の差分) | はい | いいえ | いいえ |
| FM に依存しない(Gemini / Claude / OpenAI / Perplexity) | はい | はい | いいえ(Python) |
| プロバイダーの自動フェイルオーバー+サーキットブレーカー | はい | いいえ | いいえ |
| 監査証跡+キャッシュ機能を備えたエンタープライズ API | はい | いいえ | いいえ |
| Python クライアント+MCP サーバー | はい | いいえ | いいえ |
テストと品質
各パッケージで npx vitest run を実行して測定(2026-10-01、すべて合格):
| パッケージ | テストファイル | テスト |
|---|---|---|
packages/api | 137 | 2,450 |
packages/cli | 83 | 2,371 |
packages/mcp | 3 | 49 |
packages/web | 1 | 39 |
ルートの npm test(上記すべて) | 224 | 4,909 |
sdks/python(pytest) | n/a | 100 |
ミューテーションスコアは上記の機能表に記載されており、2026-10-01 には再測定されていません。
NextGen AI が開発
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。