mcpField
W
Weavatrix Quality

Weavatrix Quality

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

Weavatrix Quality について

Weavatrix Quality(WVQ)は、OpenSpecの義務とGitの変更を既存のテストランナーに結び付け、修正リビジョンに紐づく証拠と判定を生成する品質計画・検証ツールです。開発チーム向けにCLI、MCPサーバー、JavaScriptインターフェースを提供します。

主な機能

  1. 01変更に応じたテスト計画と選択
  2. 02影響範囲の保護テスト実行
  3. 03義務とテスト証拠の紐付け
  4. 04複合判定の検証と説明
  5. 05Playwrightによるブラウザ操作記録

活用シーン

  1. 01Git変更の影響を受けるテストの評価
  2. 02義務に既存の証明があるか確認
  3. 03CIで影響範囲のテストを実行・検証
  4. 04テストプログラムの作成・プレビュー・昇格

MCP 対応

MCPサーバーは、コーディングエージェント向けに品質コンテキスト、計画、実行、状態確認、検証、説明、証拠のツールを公開します。authoringプロファイルでは、テストプログラムの作成、検証、プレビュー、昇格も行えます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"weavatrix-weavatrix-quality": {
"command": "npx",
"args": [
"-y",
"@weavatrix/wvq"
]
}
}
}
起動コマンドnpx -y @weavatrix/wvq

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

パッケージ
npm@weavatrix/wvq0.1.0-alpha.5

ツール

7

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

パラメーター型必須説明
changestringいいえ変更 ID。OpenSpec の変更がちょうど 1 件ある場合に限り、`current` を使用します。
purposestringいいえコンテキストを要求する理由:spec、implementation、review のいずれか。
token_budgetintegerいいえQualityContextPacket のおおよその最大トークン数。

詳細

Weavatrix Quality(wvq)

CI npm MCP MIT

変更によって何が壊れる可能性があるか、そしてその保護がまだ有効かを把握できます。

Weavatrix Quality(WVQ)は、OpenSpec の意図と Git の変更を、既存のランナーを使ったリビジョンに紐づく証明に変換します。通常の成功パスでは、実行時の LLM トークン消費は 0 です。ポリシー、選択、エビデンス、証明は Rust が担い、npm/JS は同じバイナリを扱う型付きの境界となります。

OpenSpec   → what must remain true
Weavatrix  → what changed and what it can affect
Runners    → smallest safe protection set
WVQ        → same-revision Proof + composite verdict
提供先パッケージ
npm(主要)@weavatrix/wvq
MCP Registryio.github.Weavatrix/weavatrix-quality
crates.iowvq-cli · wvq-mcp · wvq-bench
リリースv0.1.0-alpha.5

アルファ版 0.1.0-alpha.5。 最初のプロダクトサイクル(1つの計画 → 1回の実行 → 1つのレポート)を実用的に回せます。v1 の DoD 全体には至っていません。詳しくは CHANGELOG と ADR 0003 をご覧ください。


インストール

# primary distribution (ships wvq + wvq-mcp + wvq-bench for 6 platforms)
npm install --save-dev @weavatrix/[email protected]

# one-shot without adding a dependency
npx @weavatrix/[email protected] --help

# Rust binaries (alpha crates; API unstable)
cargo install wvq-cli --version 0.1.0-alpha.5
cargo install wvq-mcp --version 0.1.0-alpha.5
cargo install wvq-bench --version 0.1.0-alpha.5

npm の名前類似性ルールにより、スコープなしの wvq は使用できません。必ず @weavatrix/wvq を使用してください。


5 分で始める

cd your-repo

# 1) read-only discovery (never writes, never seals)
npx @weavatrix/[email protected] doctor

# 2) write fail-closed policy (first time only)
npx @weavatrix/[email protected] init

# 3) compile OpenSpec obligations for a change folder
npx @weavatrix/[email protected] spec validate --change current

# 4) run the smallest safe protection set (also builds measured coverage)
npx @weavatrix/[email protected] run \
  --change current \
  --base origin/main \
  --head HEAD \
  --scope impacted \
  --evidence-policy minimal
# After a successful native coverage runner, Weavatrix `coverage_map` reads:
#   .weavatrix/coverage/lcov.info
# Quality does not invent a second stack. Playwright is last-resort JS only.

# 5) read-only composite verdict from stored evidence
npx @weavatrix/[email protected] verify --change current

証明を確定する前にバインディングが必要ですか? .weavatrix-quality/config.yaml と examples から始めてください。


CLI クックブック

すべてのコマンドで --repo <path> を指定できます(デフォルト:.)。CI では絶対パスを推奨します。

日常のサイクル
alias wvq='npx @weavatrix/[email protected]'

wvq doctor
wvq plan --change checkout-fix
wvq select --change checkout-fix --base origin/main --head WORKTREE
wvq run --change checkout-fix --base origin/main --head WORKTREE --scope impacted
wvq status
wvq verify --change checkout-fix
wvq explain <proof-or-finding-id>
仕様 / 確定 / 負債
wvq spec validate --change checkout-fix
wvq spec seal --change checkout-fix          # fail-closed; needs valid obligations
wvq debt --change checkout-fix --base origin/main --head HEAD
wvq baseline --change checkout-fix --decision observed_only   # CLI-only, not MCP
観測専用 CI(Stage A)
# facts stay honest (UNPROVEN / NOT_ENOUGH_EVIDENCE), process exit stays 0
wvq verify --change checkout-fix --observe-only true
ブラウザーで記録 → MCP/Studio 経由で後から昇格
wvq record --change checkout-fix --route /checkout
wvq ingest-journal --file .weavatrix-quality/journals/session.json
wvq ingest-cassette --file captures/checkout.har --origin https://app.example.test
選択実行と全件実行のシャドー比較(ベンチマーク)
wvq bench --repo . --change checkout-fix --base origin/main --head WORKTREE
# or: npx @weavatrix/[email protected] bench --repo . ...
終了コード
コード意味
0成功 / 観測専用(判定が未解決の場合も含む)
1エビデンス未解決 / 通常の失敗
2ブロック対象の CONTRADICTED 検証

CLI の全機能については wvq --help をご覧ください。製品の詳細なルールは docs/STATUS.md に記載されています。


MCP クックブック

WVQ は mcport MCP ホストとして提供されます。デフォルトのプロファイルは 7 個のツールで、シェルは使用せず、大きなアーティファクトはハンドルとしてのみ扱います。

Cursor(mcp.json)
{
  "mcpServers": {
    "weavatrix-quality": {
      "command": "npx",
      "args": [
        "-y",
        "@weavatrix/[email protected]",
        "mcp",
        "--repo",
        "C:/path/to/your-repo"
      ]
    }
  }
}
Claude Desktop
{
  "mcpServers": {
    "weavatrix-quality": {
      "command": "npx",
      "args": ["-y", "@weavatrix/[email protected]", "mcp", "--repo", "/Users/you/src/app"]
    }
  }
}
デフォルトのツール(コーディングエージェント向け)
quality_context   quality_plan   quality_run   quality_status
quality_verify    quality_explain   quality_evidence

エージェントのワークフロー例:

  1. quality_context — この変更に存在する義務を確認
  2. quality_plan — 既存の証明に対する不足を確認(実行なし)
  3. quality_run — 影響を受ける保護を実行し、Weavatrix の coverage_map 用に .weavatrix/coverage/lcov.info を公開
  4. quality_verify — 複合判定
  5. quality_explain / quality_evidence — ハンドルまたは ID を詳しく確認
オーサリングプロファイル(TestProgram のドラフト → プレビュー → 昇格)
npx @weavatrix/[email protected] mcp --repo . \
  --profile authoring \
  --change checkout-fix \
  --base origin/main \
  --head WORKTREE
quality_test_draft    quality_test_validate   quality_test_preview
quality_test_promote  quality_test_record     quality_test_heal

doctor / init / baseline は CLI 専用です。エージェントが検出結果や観測されたベースラインを権威あるものとして扱えないようにするためです。

その他の設定と JSON-RPC の例:examples/mcp/。


JavaScript ライブラリのクックブック

npm install --save-dev @weavatrix/[email protected]
計画 → 実行 → 検証
import { WvqClient } from '@weavatrix/wvq'

const wvq = new WvqClient({ repo: process.cwd() })

const plan = await wvq.plan({ change: 'checkout-fix' })
console.log(plan.obligations, plan.gaps)

const run = await wvq.run({
  change: 'checkout-fix',
  base: 'origin/main',
  head: 'WORKTREE',
  scope: 'impacted',
  evidencePolicy: 'minimal',
})
console.log(run.run_id, run.outcome, run.scope_reason)

const verify = await wvq.verify({ change: 'checkout-fix' })
console.log(verify.state, verify.quality.proof, verify.base, verify.head)

if (verify.blocking) {
  for (const reason of verify.quality.blocking_reasons) {
    console.error(reason.code, reason.detail)
  }
  process.exit(2)
}
仕様 / 選択 / 負債 / 説明
await wvq.specValidate({ change: 'checkout-fix' })
const selected = await wvq.select({
  change: 'checkout-fix',
  base: 'origin/main',
  head: 'HEAD',
})
console.log(selected.selected, selected.uncovered_mandatory)

const debt = await wvq.debt({
  change: 'checkout-fix',
  base: 'origin/main',
  head: 'HEAD',
})
console.log({ new: debt.new, fixed: debt.fixed, returned: debt.returned })

const detail = await wvq.explain(verify.proofs[0]?.id)
console.log(detail.summary, detail.provenance)
Node からの MCP クライアント(デフォルト + オーサリング)
import { WvqMcpClient } from '@weavatrix/wvq/mcp'

const mcp = new WvqMcpClient({
  repo: process.cwd(),
  profile: 'default',
  change: 'checkout-fix',
})
const status = await mcp.call('quality_status', { change: 'checkout-fix' })
const verdict = await mcp.call('quality_verify', { change: 'checkout-fix' })

const authoring = new WvqMcpClient({
  repo: process.cwd(),
  profile: 'authoring',
  change: 'checkout-fix',
  base: 'origin/main',
  head: 'WORKTREE',
})
const draft = await authoring.draft()
const validated = await authoring.validate(candidateProgram)
const preview = await authoring.preview(validated.program, {
  screenshot: true,
  trace: true,
})
if (preview.passed) {
  await authoring.promote(preview.preview_id, validated.program)
}
CI スニペット(GitHub Actions)
- uses: actions/setup-node@v4
  with:
    node-version: 24
- run: npx @weavatrix/[email protected] doctor
- run: >
    npx @weavatrix/[email protected] run
    --change current --base origin/${{ github.base_ref }} --head HEAD
    --scope impacted --evidence-policy minimal
- run: npx @weavatrix/[email protected] verify --change current --observe-only true

実行可能なサンプル:examples/js/ · examples/cli/。


リポジトリポリシー

.weavatrix-quality/config.yaml では、具体的なテストを義務 ID に紐付けます。 このマッピングがない場合、テストスイートがすべて成功しても UNPROVEN のままです。

quality_policy_v: 1

test_bindings:
  - path: tests/permissions.spec.ts
    runner: playwright
    case: viewer cannot delete a widget
    obligations: [permissions-delete]
    cost: 10
    flake_penalty: 0

browser:
  base_url: http://127.0.0.1:3000
  engine: chromium
  headless: true
  module_root: .

wvq init は、フェイルクローズ方式のスターターを書き込みます。このリポジトリでは変更をドッグフーディングしています wvq-invariants。詳しくは examples/cli/dogfood.sh をご覧ください。

ブラウザーのプレビューには、対象リポジトリ内の Playwright が必要です。

npm install --save-dev playwright
npx playwright install chromium

WVQ とは/WVQ ではないもの

とはではないもの
既存のランナーを使った仕様から証明への変換2 つ目のテストフレームワーク
Weavatrix を活用した影響分析+選択ブラウザーエンジン(Playwright はそのまま使用)
CLI+MCP+型付き JS 境界OpenSpec のフォーク
成功経路での LLM トークン消費量 0オラクルの自動・無通知修復
未知のスキーマに対するフェイルクローズ単一のグローバルな「品質%」

エコシステム内での位置付け:

Weavatrix          UNDERSTAND   what exists in source
Weavatrix Quality  PROVE        what must still be true after this change
Weavatrix Loom     COMPOSE      capabilities into ordinary Rust

ソースからビルドする

Rust 1.89+ が必要です。

cargo test --workspace --locked
cargo clippy --workspace --all-targets --locked -- -D warnings

ドキュメント一覧

ドキュメント用途
examples/CLI/MCP/JS のコピー&ペースト
CHANGELOGalpha に含まれる内容
docs/STATUS.md成熟度マトリックス+次のタスク
docs/adr/0003-…alpha と v1 で延期された内容
docs/CANONICAL-MASTER-SPEC.md規範となる製品設計

ライセンス

MIT です。LICENSE をご覧ください。

コメント

MCP は初めてですか?

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

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