
Faultline
io.github.nxtg-ai由 GitHub 帳號 nxtg-ai 發布v0.12.1更新於 Nov 6, 2026
Checks the most important factual claims in AI output against live web sources by default.
概覽
Faultline 將 AI 生成內容拆解為原子論斷,對照即時網路來源逐條查核,給出判定、信心分數與整體風險等級。
- 可以做什麼
- 查核論斷:把 AI 輸出拆成原子論斷,逐條對照即時證據,回傳支持、反駁、混合或未證實及信心分數
- 評估風險:給出整體風險等級,並找出最削弱論證的「最弱一環」論斷
- 比對與評論:比較兩段文字或兩次掃描的新增、移除與判定變化,並對失敗論斷提供評論與改良提示詞
- 掃描文件:送出文字、PDF 或圖片(含 OCR),結果可輸出為 JSON、markdown、HTML 或 SARIF
- CI 門檻:風險為高或嚴重、或報告分數低於門檻時讓建置失敗
- 適用情境
- 適合在 AI 生成的事實性內容發布、交付或合併前需要查核時使用,也適合為 AI 撰寫的發布說明、報告與文件設定自動門檻。需要逐條證據與信心分數而非單一通過/失敗評分的流程同樣適用。
- 執行需求
- 需要遠端 Streamable HTTP 端點,清單指向託管 API,README 另說明同一主機上的託管 MCP 路由。必須提供 Faultline API 金鑰,透過 X-API-Key 標頭送出。掃描在託管服務上以伺服器端供應商金鑰執行,受方案額度限制(免費版每月 5 次掃描)。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Faultline,將其新增到工作區。
- 連接 X-API-Key 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
- 為需要使用其工具的對話啟用該服務。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
交給代理程式安裝
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/io.github.nxtg-ai%2Ffaultline/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。其他 MCP 客戶端
把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"faultline": {
"type": "http",
"url": "https://faultline-api.fly.dev/mcp",
"headers": {
"X-API-Key": "<YOUR_API_KEY>"
}
}
}
}README
Faultline — We check the receipts on AI output.
Future-proof your agent stack. Independent of every model vendor: NXTG.ai does not build the models Faultline checks.
Faultline decomposes AI-generated output into atomic claims, verifies each against live evidence, and can fail a CI build on the result.
[Release stage: alpha] [CI] [npm] [Tests] [TypeScript] [License]
Release stage: alpha. Usable today, with sharp edges. No accuracy figure is claimed: verdict accuracy has not yet been re-graded independently. Anything may change before 1.0.
Governance records the API produces
The hosted API ships three governance records as code: a risk register export (POST /scan/risk-register), a tamper-evident audit log manifest (GET /audit/log/manifest, admin keys only), and human sign-off records (POST /scans/:id/approve, GET /scans/:id/approvals). In the manifest, each chain hash is the SHA-256 of the entry hash followed by the previous chain hash. You can recompute the chain with openssl dgst -sha256 alone, with no Faultline tooling.
Current Status (checked 2026-10-01)
What It Does
Features
Providers
Switch providers with --provider <name>. No code changes required. With no provider key and no FAULTLINE_API_KEY, the CLI says nothing was checked and exits instead of inventing a verdict (since v0.10.1). With FAULTLINE_API_KEY set, guard and the MCP server run the scan on the hosted API with server-side provider keys.
Document Ingestion
- PDF + image upload with OCR —
faultline scan --file document.pdforPOST /scan/upload; powered bypdf-parse+tesseract.js - Text files —
--input doc.txt - Directories —
--dir ./docs --glob "*.md"
Reports and Rules
- Scan reports (PDF) via
POST /scan/report - Rules engine — YAML-defined rules: PII detection, bias indicators, toxicity flags, custom rules
Output Formats
json— programmatic processing, CI pipelinesmarkdown— PRs, reports, documentationhtml— browser-readable audit reportssarif— VS Code Problems panel, GitHub Code Scanning (--sarifshorthand writesresults.sarif)
Enterprise API
- API key management — full lifecycle:
POST /keys,GET /keys,GET /keys/:id,PATCH /keys/:id,DELETE /keys/:id; soft-disable/enable; scoped permissions (scan / report / upload / admin / pro) - Key hygiene — dormant key detection (
GET /keys/dormant), expiry notifications (7d/1d thresholds), bulk delete/disable/enable, usage analytics (GET /keys/usage), hygiene dashboard (GET /keys/usage/view) - Audit trail — SHA-256 input hash logged on every request;
GET /audit/log(query + filter),GET /audit/log/stats,GET /audit/log/export(NDJSON); tenant-scoped view - Usage metering: per-key daily scan counts and monthly quota position via
GET /usage(admin keys also see the provider-spend budget) - Rate limiting — per-tier per-minute limits: free 10/min, pro 100/min, admin 10,000/min;
X-RateLimit-*headers - Spend and quota gates: a per-key monthly scan quota (
402) and a fleet provider-spend cap (503), both dormant until switched on; the spend ledger records every managed scan and/critiquecall either way - Multi-tenant — tenant CRUD (
POST /tenants); all resources scoped by tenant: scan history, notifications, webhooks, audit log;GET /tenants/:id/usage - Cost tracking — per-scan token/cost estimates by provider rate;
GET /costs(keyId/provider/date filters + aggregate) - Usage dashboard —
GET /dashboard: live scan feed, provider health, active keys, scan counts (today/week/month), risk distribution - Webhooks —
POST /webhooks;scan.complete/scan.failed/job.completeevents; HMAC-SHA256 signing; per-webhook retry config (maxAttempts 1–5, retryDelayMs); rate limiting (FAULTLINE_WEBHOOK_RATE_LIMIT); circuit breaker (FAULTLINE_WEBHOOK_CIRCUIT_THRESHOLD/COOLDOWN_MS); delivery log + dashboard - Batch scanning —
POST /scan/batch(1–10 texts, concurrent, partial failure semantics); see docs/ci-integration.md - Scan comparison —
POST /scan/compare: diff two scan results (new/removed claims, verdict changes, trust score delta) - Caching — SHA-256 content-hash cache; 24h TTL (env
FAULTLINE_CACHE_TTL_MS);X-Cache: HIT/MISSheader;GET /cache/stats,DELETE /cache - Scheduled jobs —
POST /jobs: recurring scans on a*/N * * * *cron schedule; results dispatched towebhookUrl - Provider failover — automatic chain Gemini → OpenAI → Claude → Perplexity → Mock; circuit breaker trips after 5 failures, resets after 5 minutes;
503when all providers down - Scan history — private per API key (the admin key sees all);
GET /scans/search?q=full-text; stale scan detection (GET /scans/stale); usage analytics (GET /scans/usage); bulk pruning (DELETE /scans/stale); hygiene dashboard;faultline scansCLI - Rule templates (HIPAA, SOX, FERPA, Gov) — HIPAA / SOX+FINRA / FERPA / Government;
POST /scan/compliance/:template; custom template upload - Bulk import —
POST /scan/bulk(ZIP of documents → async job);GET /jobs/:id/progress(percentage + per-file status + summary) - Monitoring —
GET /health/deep(subsystem status + provider config flags),GET /metrics(Prometheus text),GET /status(HTML) - Swagger UI —
GET /docs(interactive OpenAPI 3.0),GET /docs/json,GET /docs/yaml - Claim search —
GET /claims?text=&verdict=&from=&to=&source=full-text claim index search - GDPR data requests (Article 15 export, Article 17 erasure) —
GET /tenants/:id/export(Article 15, admin-gated): ZIP archive with manifest, scan-history, audit-log (NDJSON), notifications, webhooks, usage, costs, schedules;DELETE /tenants/:id/data(Article 17, admin-gated): erases all PII across 8 data categories for a tenant; idempotent; tenant record preserved - i18n — send
Accept-Language: esorAccept-Language: frfor localized error messages; defaults to English
Quick Start (CLI)
Step 1: Get a free Gemini key (no credit card): aistudio.google.com/apikey
Step 2:
Expected output (excerpt):
Other providers:
Scan a PDF or image:
Check piped agent output:
CI gate (no API key required, synthetic verdicts, wiring test only):
API Quick Start
Start the server:
Scan a text payload:
Upload a PDF or image for OCR scanning:
Generate a PDF report of a scan:
Create an API key:
Register a webhook:
View the usage dashboard:
Hosted API: https://faultline-api.fly.dev (GET /health needs no key). Interactive docs at GET /docs on a running server.
Check consensus gating (needs an API key; the mock provider spends nothing):
Route reference: packages/api/README.md. The spec at packages/api/docs/openapi.yaml declares version 0.7.0 and has 48 paths, so it covers only part of the current routes.
Architecture
Monorepo layout:
The production web app at https://faultline.nxtg.ai is a separate repo (faultline-web, Next.js on Vercel). It is not in this monorepo.
Stores (API layer):
CLI Commands
SDKs and Integrations
TypeScript / Node.js
There is no TypeScript SDK package in this repo and @nxtg/faultline-sdk is not on npm (npm view returned 404 on 2026-10-01). Call the REST API directly, or use the CLI (@nxtg/faultline).
Python
Source is in sdks/python (pyproject name faultline-sdk, version 0.5.0, zero runtime dependencies). Install from a checkout:
Do not run pip install faultline-sdk. On 2026-10-01 that name on PyPI (version 0.24.0) is an unrelated project (ML training checkpoints for "Faultline Cloud"). Whether this package was ever published to PyPI under a different name was not verified.
MCP server
packages/mcp (@nxtg/faultline-mcp 0.12.1) exposes a verify_claims tool to Claude Code, Cursor and other MCP clients. It was not published to npm as of 2026-10-01 (npm view returned 404), so run it from a checkout. See packages/mcp/README.md.
Hosted, with nothing to install: the API serves the same tool at POST /mcp (Streamable HTTP, header x-api-key), once deployed at https://faultline-api.fly.dev/mcp; every scan gate applies. See docs/INTEGRATION.md §13.
GitHub Action
The action lives in its own repo, nxtg-ai/faultline-action (tag v1 exists).
CI Integration
See docs/ci-integration.md for:
- GitHub Actions workflow (real provider + mock)
- GitLab CI example
- Pre-commit hook for staged files
- API-based batch scanning with CI gate logic
- Risk level reference table
Quick GitHub Actions example:
What Makes This Different
Promptfoo tests your prompts. DeepEval scores your RAG pipeline. Faultline audits what the AI actually said.
Tests and Quality
Measured 2026-10-01 with npx vitest run in each package (all passing):
Mutation scores are listed in the feature table above and were not re-measured on 2026-10-01.
Built by NextGen AI
來源:README.md,提交 21a2c14
工具
0版本歷史
1- v0.12.1最新Nov 6, 2026
評分
已滿足適用檢查項的 85%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通必需25 分
- 已宣告認證方式必需10 分
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分