mcpField
S
Speclock

Speclock

ローカル
sgroy10.github.io開発ツール2510 週間前に更新

Speclock について

SpecLock は、CLAUDE.md、AGENTS.md、.cursorrules などのルールファイルに書かれた制約を、編集・シェルコマンド・コミットの前に実行されるチェックへ変換する制約エンジンです。Claude Code や Cursor などの AI コーディングツールを使う開発者が対象で、キーワード一致ではなく意味ベースの衝突検出を行う点が特徴です。

主な機能

  1. 01既存の AI ルールファイルから制約を抽出
  2. 02編集とシェルコマンドの実行前にチェック
  3. 03間接的な違反を検出する意味ベースの判定
  4. 04アドバイザリーモードと強制ブロックモード
  5. 05判断内容を記録する HMAC チェーン監査ログ
  6. 06エージェントに依存しない Git と CI での強制

活用シーン

  1. 01コーディングエージェントによる認証や決済ロジックの変更防止
  2. 02コミットと CI パイプラインへの制約チェックの追加
  3. 03チームでのロールと API キーによる例外承認の管理

MCP 対応

MCP サーバーとして、Claude Code、Cursor、Codex、Windsurf、Cline などのクライアントに 51 のツールを公開し、クライアントが操作前に制約チェックを呼び出せるようにします。

設定

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

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

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

パッケージ
npmspeclock5.5.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SpecLock

ルールファイルは、AI に変更してはいけない内容を伝えます。
SpecLock はそれを強制します。

CLAUDE.md、AGENTS.md、.cursorrules にすでに記述したプロジェクトの制約に、Claude Code、Cursor、Codex、Windsurf などの AI コーディングツールが違反するのを防ぎます。

npm バージョン npm ダウンロード数 CI MIT ライセンス MCP ツール 51 個

インストール · ブロック例を見る · Claude Code プラグイン · ウェブサイト · 保存一覧

別のルールツールが必要な理由は? ルールファイルはコンテキストです。長時間のコーディングセッションでは、忘れられたり、薄められたり、上書きされたりする可能性があります。SpecLock はそれらのルールを、編集、シェルコマンド、コミットの前に実行されるチェックに変えます。

違いを見る

CLAUDE.md:  Never modify the authentication system.

You:        Add social login to the login page.

Without SpecLock
Claude:     I'll update the auth flow and add an OAuth provider...

With SpecLock (strict mode)
SpecLock:   BLOCKED — conflicts with "Never modify the authentication system"
            Match: login → auth → authentication
            The action was denied before the files changed.

SpecLock は単純なキーワード照合ではなく、意味的な競合検出を使用します。「古い患者データを整理する」「チェックアウトを効率化する」「MFA を一時的に無効にする」など、有効な制約に違反する間接的な操作も検出します。

60 秒でセットアップ

保護したいプロジェクトから、次を実行します。

npx speclock@latest protect          # reads existing AI rule files; advisory by default
npx speclock@latest doctor           # confirms rules, hooks, and integration

アドバイザリー出力に問題がなければ、ブロックを有効にします。

npx speclock@latest protect --strict

アカウントは不要です。SpecLock はデフォルトでローカル実行され、アドバイザリーモードでは変更がブロックされることはありません。

Claude Code プラグインとしてインストール

Claude Code 内で、次を実行します。

/plugin marketplace add sgroy10/speclock
/plugin install speclock@speclock-marketplace

次に、現在のプロジェクトを一度だけ保護します。

npx speclock@latest protect          # warnings only
npx speclock@latest protect --strict # block confirmed conflicts

プラグインは SpecLock の MCP サーバーを自動的に起動し、Claude Code の Write、Edit、Bash アクションを実行前にチェックします。51 個すべての MCP ツールが含まれており、既存の CLAUDE.md と併用できます。

その他のコーディングエージェントへのインストール

SpecLock は複数のエージェントエコシステム向けにパッケージ化されていますが、適用できる保護レベルは各ホストが公開する機能によって異なります。

プラットフォームインストール/検出方法保護レベル
Claude Code上記のネイティブマーケットプレイスプラグインWrite、Edit、Bash に対するネイティブなアクション前チェック
Gemini CLIこのリポジトリを Gemini 拡張機能としてインストールMCP を利用したチェックとプロジェクトコンテキスト
CursorAgent Plugin/Cursor マーケットプレイスパッケージMCP を利用したチェックとルール
Codexplugins/speclock にあるリポジトリの Codex プラグインMCP を利用したチェックと $speclock-guardrails スキル
GitHub Copilot CLIこのリポジトリをプラグインマーケットプレイスとして追加MCP を利用したチェックと同梱プラグインコンテキスト
ClineMCP サーバー。厳選マーケットプレイスへの登録を申請中MCP を利用したチェック
Windsurfspeclock mcp install windsurfMCP を利用したチェックとルール
あらゆる Git クライアントまたは CIspeclock protectコーディングエージェントに依存しないコミット/CI 適用

MCP を利用したチェックとは、エージェントが実行前に SpecLock を呼び出せるという意味であり、必ず介入できることを保証するものではありません。クライアントにかかわらず制約を適用する必要がある場合は、speclock protect --strict と CI を使用してください。

SpecLock の役割は、メモリやスキルとは異なります。**メモリはコンテキストを呼び出し、スキルは手順を提供し、SpecLock は明示的な制約に照らして計画されたアクションを検証します。**制約の逸脱を抑制しますが、事実の正確性を保証したり、モデルのハルシネーションをなくしたりすることはできません。

現在のクライアントでサポートされているリポジトリのインストール方法:

gemini extensions install https://github.com/sgroy10/speclock
copilot plugin marketplace add sgroy10/speclock
copilot plugin install speclock@speclock-marketplace

利用できる機能

機能内容
アクション前チェックClaude Code の書き込み、編集、シェルコマンドを実行前に確認します
セマンティック制約類義語、婉曲表現、複合的なリクエスト、間接的な違反を検出します
Git による適用コミット時に第 2 のガードを追加します
アドバイザリーモードと厳格モード警告から始め、準備ができたらハードブロックを有効にできます
監査証跡改ざんを検知できる HMAC チェーンに判定を記録します
MCP 統合Claude Code、Cursor、Codex、Windsurf、Cline に 51 個のツールを公開します
共有可能な保存レシートspeclock wins で SpecLock が防いだ内容を確認できます

オープンに実証済み

  • npm ダウンロード数 10,000 件以上。ネイティブ Claude Code プラグインのリリース前の実績です。
  • 24 個のスイートで自動テスト 1,043 件。敵対的な競合、誤検知ケース、パッチ分析、適用、認証、コンプライアンスを含みます。
  • MIT ライセンスで、すべての内容を確認できます。
  • ローカルファーストのデフォルト設定で、オプションのリモート機能は明確に分離されています。

よく使うコマンド

speclock protect                      # extract constraints and install project protection
speclock protect --strict             # enable hard enforcement
speclock doctor                       # verify the complete setup
speclock check "action description"   # preview whether an action conflicts
speclock add-lock "rule"              # add a constraint explicitly
speclock list-locks                    # inspect active constraints
speclock enforce hard|advisory         # switch enforcement mode
speclock mcp install <client>          # Claude Code, Cursor, Windsurf, Cline, or Codex
speclock wins                          # create a shareable save receipt

完全なリファレンス:npx speclock@latest help

v5.8.0 の新機能

  • Cursor と互換性のある検出に対応した、ポータブルな Agent Plugin パッケージ。
  • MCP の起動と制約コンテキストに対応した、Gemini CLI 拡張機能のパッケージ。
  • $speclock-guardrails スキルと固定された MCP サーバーを備えた Codex プラグイン。
  • リポジトリマーケットプレイス経由の GitHub Copilot CLI 互換性。
  • プラットフォームごとの適用方式を明示するラベル:ネイティブフック、MCP を利用したチェック、または Git/CI。
その他のリンクとプロジェクトバッジ

SpecLock がブロック Smithery · バッジギャラリー · Sandeep Roy

## 問題

AI コーディングツールにも、今やメモリ機能があります。Claude Code には CLAUDE.md があります。Cursor には .cursorrules があります。Mem0 もあります。

しかし、強制力のないメモリは役に立ちません。

AIは、あなたがPostgreSQLを使っていることを 記憶 していても、「こちらのほうがよさそう」という理由でMongoDBに切り替えてしまいます。認証の設定を 記憶 していても、バグを「修正」するつもりで書き換えてしまいます。「決済ロジックには絶対に触れないで」と3セッション前に伝えていても、AIは気にしません。

記憶することと、尊重することは別です。 これまでのツールには、ロックした内容をAIに壊させないものがありません。

仕組み

制約を設定すると、SpecLockがセッション、ツール、チームをまたいでそれを適用します。

speclock lock "Never modify auth files"           → auto-guards src/auth/*.ts
speclock lock "Database must stay PostgreSQL"      → catches "migrate to MongoDB"
speclock lock "Never delete patient records"       → catches "clean up old data"
speclock lock "Don't touch the payment flow"       → catches "streamline checkout"

セマンティックエンジンは、キーワード照合を行いません。次のように理解します。

  • 「古いデータを整理する」 = 削除(婉曲表現の検出)
  • 「チェックアウトを効率化する」 = 決済フローの変更(同義語と概念のマッピング)
  • 「一時的にログ記録を無効にする」 = ログ記録の無効化(時間的な回避の検出)
  • 「UIを更新して、さらにusersテーブルを削除する」 = 隠れた違反(複合文の分割)

また、安全な操作も判別します。

  • 「監査ログを有効にする」 と、ロックの「監査ログを 無効にしない」 → 競合なし(意図の一致)

プラットフォーム別クイックスタート

Bolt.new/Aider/その他のnpmプラットフォーム
npx speclock setup --goal "Build my app" --template nextjs

SPECLOCK.mdを作成し、package.jsonにルールを挿入して、.speclock/context/latest.mdを生成します。AIはこれらを自動的に読み込みます。

Claude Code

上記のコマンドを使ってプラグインをインストールします。プラグインのフックを使わずにMCPのみでセットアップする場合は、.mcp.jsonに次の内容を追加します。

{
  "mcpServers": {
    "speclock": {
      "command": "npx",
      "args": ["--yes", "[email protected]", "serve", "--project", "."]
    }
  }
}
Cursor/Windsurf/Cline

同じ設定を使います。.cursor/mcp.jsonまたは同等のファイルに追加します。

Lovable(インストール不要)
  1. 設定 → コネクター → 新しいMCPサーバーに移動します
  2. URLに https://speclock-mcp-production.up.railway.app/mcp を入力します
  3. プロジェクトの指示をナレッジに貼り付けます

他の選択肢ではなくSpecLockを選ぶ理由

Claude MemoryMem0.cursorrulesSpecLock
コンテキストを記憶するはいはい手動はい
AIによる内容の破壊を防ぐいいえいいえいいえはい
セマンティックな競合検出いいえいいえいいえはい — 敵対的テストで検証済み
改ざん防止監査証跡いいえいいえいいえHMAC-SHA256チェーン
強制適用(AIは処理を続行できない)いいえいいえいいえはい
SOC 2/HIPAA準拠のエクスポートいいえいいえいいえはい
暗号化ストレージ(AES-256-GCM)いいえいいえいいえはい
RBAC + APIキー認証いいえいいえいいえ4つのロール
Policy-as-Code DSLいいえいいえいいえYAMLルール
Bolt.new、Lovableなどで動作いいえいいえいいえはい

他のツールは記憶します。SpecLockは強制適用します。


セマンティックエンジン

キーワードマッチングではなく、セマンティック分析を行います。グレーゾーンや分野横断的なケースには、Gemini Flash によるハイブリッド分析をオプションで利用できます。リポジトリには、敵対的入力、誤検出、質問のフレーミング、パッチゲートウェイ、差分分析のテストスイートが含まれています。

カテゴリ検出率例
直接的な違反100%「認証モジュールを削除する」対「認証を変更しない」というロック
婉曲的な攻撃100%「古い患者データを整理する」=削除
一時的な回避100%「MFA を一時的に無効化する」=MFA を無効化する
希釈攻撃100%複数項目からなるリクエストに違反を紛れ込ませる
複文100%「UI を更新し、さらに users テーブルを削除する」
同義語への置き換え100%「API を段階的に廃止する」=API を削除する
決済ブランド名(11 ゲートウェイ)100%「Razorpay を追加する」/「PayU を実装する」対「Stripe を必ず使用する」
給与/給与計算に関する分野横断用語100%「給与を最適化する」対「給与計算記録はロック済み」
安全システムの回避100%「安全インターロックを無効化する」=安全機能を回避する
未知の分野(Gemini 経由)100%ゲーム、バイオテクノロジー、航空宇宙、音楽、法律
安全な操作(真陰性)誤検出 0%「フォントを変更する」は認証ロックを正しく通過

内部の仕組み: 65 以上の同義語グループ · 80 以上の婉曲表現マッピング · 分野別の概念マップ(フィンテック、E コマース、IoT、ヘルスケア、SaaS、決済、ゲーム、通信、政府) · 意図分類器 · 複文分割器 · 一時的な回避の検出器 · 動詞の時制正規化 · UI の見た目に関する検出 · 安全な意図のパターン · 受動態解析 — すべて純粋な JavaScript で実装されています。グレーゾーンのケースには Gemini Flash によるハイブリッド分析を利用できます(1,000 回のチェックあたり $0.01)。


厳格な適用

2 つのモードがあります。

Advisory (default):  AI gets a warning, decides what to do
Hard mode:           AI is BLOCKED — MCP returns isError, AI cannot proceed
speclock enforce hard   # Enable hard mode — violations above threshold are blocked
  • しきい値の設定 — デフォルトは 70% です。確信度が HIGH の競合のみをブロックします。
  • 理由を添えて上書き — speclock override <lockId> "JIRA-1234: approved by CTO"(監査証跡に記録されます)
  • 自動エスカレーション — ロックが 3 回以上上書きされると、自動的にレビュー対象としてフラグ付けされます

エンタープライズセキュリティ

API キー認証 + RBAC
speclock auth create-key --role developer --name "CI Bot"
# → sk_speclock_a1b2c3... (shown once, stored as SHA-256 hash)
ロール読み取りロックの書き込み上書き管理者
viewerはい———
developerはい—理由付き—
architectはいはいはい—
adminはいはいはいはい
AES-256-GCM 暗号化
export SPECLOCK_ENCRYPTION_KEY="your-secret"
speclock encrypt   # Encrypts brain.json + events.log at rest

PBKDF2 による鍵導出(10 万回の反復)。認証付き暗号化。HIPAA 2026 に準拠しています。

HMAC 監査チェーン

各イベントには、直前のイベントと連鎖する HMAC-SHA256 ハッシュが付与されます。何かを変更すると、チェーンが破損します。

$ speclock audit-verify

✓ Audit chain VALID — 247 events, 0 broken links, no tampering detected.
コンプライアンスエクスポート
speclock export --format soc2    # SOC 2 Type II report (JSON)
speclock export --format hipaa   # HIPAA PHI protection report
speclock export --format csv     # All events for auditor spreadsheets

ポリシー・アズ・コード

組織全体で適用する宣言型 YAML ルール:

# .speclock/policy.yml
rules:
  - name: "HIPAA PHI Protection"
    match:
      files: ["**/patient/**", "**/medical/**"]
      actions: [delete, modify, export]
    enforce: block
    severity: critical

  - name: "No direct DB mutations"
    match:
      files: ["**/models/**"]
      actions: [delete]
    enforce: warn
    severity: high

プロジェクト間でポリシーをインポートおよびエクスポートできます。組織内で制約テンプレートを共有できます。


REST API v2

リアルタイムの制約チェック、パッチレビュー、自律システムに対応します:

# Patch Gateway (v5.1)
POST /api/v2/gateway/review        { description, files, useLLM }

# AI Patch Firewall (v5.2)
POST /api/v2/gateway/review-diff   { description, files, diff, options }
POST /api/v2/gateway/parse-diff    { diff }

# Typed constraint checking
POST /api/v2/check-typed    { metric, value, entity }
POST /api/v2/check-batch    { checks: [...] }

# SSE streaming (real-time violations)
GET  /api/v2/stream

# Spec Compiler
POST /api/v2/compiler/compile  { text, autoApply }

# Code Graph
GET  /api/v2/graph/blast-radius?file=src/core/memory.js
GET  /api/v2/graph/lock-map
POST /api/v2/graph/build

51 個の MCP ツール

メモリ — 目標、ロック、決定事項、メモ、デプロイ情報
ツール機能
speclock_initプロジェクトで SpecLock を初期化
speclock_get_contextコンテキスト一式を取得(主要ツール)
speclock_set_goalプロジェクトの目標を設定
speclock_add_lock制約を追加し、関連ファイルを自動的に保護
speclock_remove_lockロックを論理削除
speclock_add_decisionアーキテクチャ上の決定事項を記録
speclock_add_note固定メモを追加
speclock_set_deploy_factsデプロイ設定を記録
適用 — 競合検出、厳格なブロック、上書き | ツール | 機能 | |------|-------------| | `speclock_check_conflict` | すべてのロックとの意味的な競合を確認します | | `speclock_set_enforcement` | アドバイザリーモード/ハードモードを切り替えます | | `speclock_override_lock` | 理由を添えてロックを上書きします(監査ログに記録) | | `speclock_override_history` | 上書きの監査履歴を表示します | | `speclock_semantic_audit` | ロックと照合して git diff を分析します | | `speclock_detect_drift` | 制約違反をスキャンします | | `speclock_audit` | コミット前にステージ済みファイルを監査します |
追跡とセッション — 変更、イベント、セッションの継続性
ツール機能
speclock_session_briefingセッションを開始し、包括的なブリーフィングを行います
speclock_session_summaryセッションを終了し、概要を記録します
speclock_log_changeファイルとともに変更を記録します
speclock_get_changes最近追跡された変更を取得します
speclock_get_eventsイベントログ全体を取得します(フィルタリング可能)
speclock_checkpointロールバック用の Git タグを作成します
speclock_repo_statusブランチ、コミット、差分の概要を表示します
インテリジェンス — 提案、健全性、テンプレート、レポート
ツール機能
speclock_suggest_locksAI によるロックの提案
speclock_health健全性スコアとマルチエージェントのタイムライン
speclock_apply_template制約テンプレートを適用します
speclock_report違反の統計と、最もテストされたロックを表示します
エンタープライズ — 監査、コンプライアンス、ポリシー、テレメトリー
ツール機能
speclock_verify_auditHMAC チェーンの整合性を検証します
speclock_export_complianceSOC 2/HIPAA/CSV レポートを出力します
speclock_policy_evaluateポリシールールを評価します
speclock_policy_manageポリシールールの CRUD 操作を行います
speclock_telemetryオプトイン方式の利用状況分析
型付き制約 — 数値、範囲、状態、時間(v5.0)
ツール機能
speclock_add_typed_lock型付き制約(数値/範囲/状態/時間)を追加します
speclock_check_typed提案された値を型付き制約と照合します
speclock_list_typed_locksすべての型付き制約を一覧表示します
speclock_update_threshold型付きロックのしきい値を更新します
仕様コンパイラーとコードグラフ — 自然言語から制約へ、依存関係分析(v5.0)
ツール機能
speclock_compile_spec自然言語を構造化された制約にコンパイルします
speclock_build_graphコードの依存関係グラフを構築/更新します
speclock_blast_radiusファイル変更の影響範囲を計算します
speclock_map_locksロックを実際のコードファイルに対応付けます
パッチゲートウェイと AI パッチファイアウォール — 変更レビュー、差分分析(v5.1/v5.2)
ツール機能
speclock_review_patch提案された変更に対して ALLOW/WARN/BLOCK の判定を行います
speclock_review_patch_diffシグナルスコアリングと統合判定を備えた、差分ネイティブのレビュー
speclock_parse_diff統合差分を構造化された変更に解析します(デバッグ/確認用)
ユニバーサルルール同期とインシデント再生 — ツール間同期、セッション再生(v5.3)
ツール機能
speclock_sync_rules制約を Cursor、Claude、Copilot、Windsurf、Gemini、Aider、AGENTS.md に同期します
speclock_list_sync_formats利用可能な同期形式をすべて一覧表示します
speclock_replayセッションのアクティビティを再生します — AI が試みたことと検出されたこと
speclock_list_sessions再生可能なセッションを一覧表示します
speclock_drift_score0〜100 のプロジェクト整合性指標 — AI が意図からどれだけ逸脱したかを示します
speclock_coverageロックカバレッジ監査 — 保護されていないコード領域を検出します
speclock_strengthenロックを評価し、より強力なバージョンを提案します

CLI

# Setup
speclock setup --goal "Build my app" --template nextjs

# Constraints
speclock lock "Never modify auth files" --tags auth,security
speclock lock remove <id>
speclock check "Add social login"              # Test before doing

# Enforcement
speclock enforce hard                          # Block violations
speclock override <lockId> "JIRA-1234"         # Override with reason

# Audit & Compliance
speclock audit-verify                          # Verify HMAC chain
speclock export --format soc2                  # Compliance report
speclock audit-semantic                        # Semantic pre-commit

# Git
speclock hook install                          # Pre-commit hook
speclock audit                                 # Audit staged files

# Templates
speclock template apply safe-defaults          # Vibe coding seatbelt (5 locks)
speclock template apply solo-founder           # Indie builder essentials (3 locks)
speclock template apply hipaa                  # HIPAA healthcare (8 locks)
speclock template apply api-stability          # API contract protection (6 locks)
speclock template apply nextjs                 # Next.js constraints
speclock template apply security-hardened      # Security hardening

# Sync to AI tools
speclock sync --all                            # Sync to ALL tools
speclock sync --format cursor                  # Cursor only
speclock sync --format claude                  # Claude Code only
speclock sync --preview windsurf               # Preview without writing

# Incident Replay
speclock replay                                # Replay last session
speclock replay --list                         # List sessions
speclock replay --session <id>                 # Replay specific session

# Project Health
speclock drift                                 # Drift Score (0-100)
speclock drift --days 7                        # Last 7 days only
speclock coverage                              # Lock Coverage Audit
speclock strengthen                            # Grade and improve locks

# Share & Stats
speclock wins                                  # Shareable "Save Receipt" (screenshot it!)
speclock wrapped                               # All-time + monthly recap (alias: recap)
speclock stats                                 # Your local usage dashboard
speclock badge                                 # Print README badges (6 variants + live badge)

# Auth
speclock auth create-key --role developer
speclock auth rotate-key <keyId>

# Policy
speclock policy init                           # Create policy.yml
speclock policy evaluate --files "src/auth/*"  # Test against rules

コマンドの完全なリファレンス:npx speclock help


Auto-Guard

何かをロックすると、SpecLock は関連ファイルを見つけ、そのファイルを開いたときに AI が確認できる警告を挿入します。

speclock lock "Never modify auth files"
→ Auto-guarded 2 files:
  🔒 src/components/Auth.tsx
  🔒 src/contexts/AuthContext.tsx

AI がファイルを開くと、次の内容が表示されます。

// ============================================================
// SPECLOCK-GUARD — DO NOT MODIFY THIS FILE
// LOCKED: Never modify auth files
// ONLY "unlock" or "remove the lock" is permission to edit.
// ============================================================

アーキテクチャ

┌──────────────────────────────────────────────────┐
│     AI Tool (Claude Code, Cursor, Bolt.new...)    │
└────────────┬──────────────────┬──────────────────┘
             │                  │
   MCP Protocol (51 tools)    npm File-Based
             │              (SPECLOCK.md + CLI)
             │                  │
┌────────────▼──────────────────▼──────────────────┐
│            SpecLock Core Engine                    │
│                                                    │
│  Semantic Engine ─── 65+ synonym groups            │
│  HMAC Audit ──────── SHA-256 hash chain            │
│  Enforcer ────────── advisory / hard block         │
│  Auth + RBAC ─────── 4 roles, API keys             │
│  AES-256-GCM ─────── encrypted at rest             │
│  Policy DSL ──────── YAML rules                    │
│  Compliance ──────── SOC 2, HIPAA, CSV             │
│  SSO ─────────────── Okta, Azure AD, Auth0         │
└──────────────────────┬───────────────────────────┘
                       │
                 .speclock/
                 ├── brain.json        (project memory)
                 ├── events.log        (HMAC audit trail)
                 ├── policy.yml        (policy rules)
                 ├── auth.json         (API keys — gitignored)
                 └── context/
                     └── latest.md     (AI-readable context)

npm 依存関係は 3 つです。 セマンティックエンジンのランタイム依存関係はゼロです。純粋な JavaScript です。


設定

変数デフォルト説明
SPECLOCK_API_KEY—認証アクセス用の API キー
SPECLOCK_ENCRYPTION_KEY—保存データの AES-256-GCM 暗号化を有効にします
SPECLOCK_NO_PROXYfalseヒューリスティックのみのモード(約250ms)にするには true を設定します。Gemini プロキシ(約2秒)をスキップします
SPECLOCK_LLM_KEY—独自の LLM API キー(Gemini/OpenAI/Anthropic)
GEMINI_API_KEY—ハイブリッド競合検出用の Google Gemini API キー
SPECLOCK_TELEMETRYfalse匿名の使用状況分析へのオプトイン

ヒント: ヒューリスティックエンジンのみでも、約250msで95%以上の精度を実現します。Gemini プロキシを使うと異なるドメイン間のカバレッジが広がりますが、約2秒かかります。応答を最速にするには、SPECLOCK_NO_PROXY=true を設定してください。


テスト結果

公開前ゲートでは、npm に公開するたびに24のテストスイートをすべて実行します。テストが1つでも失敗すると、公開はブロックされます。

スイートテスト数合格率対象範囲
実環境テスター111100%5人の開発者、30件以上のロック、多様なドメイン
敵対的競合46100%婉曲表現、時間的な回避、複文
フェーズ4(マルチドメイン)91100%フィンテック、Eコマース、IoT、医療、SaaS
Sam(エンタープライズ HIPAA)124100%HIPAA ロック、PHI、暗号化、RBAC
認証と暗号化114100%API キー、RBAC、AES-256 暗号化
John(インディー開発者の開発過程)86100%5件のロックを含む、Bolt.new での8セッションにわたる構築
差分ネイティブレビュー76100%インターフェースの破損、スキーマの変更、API への影響
パッチゲートウェイ57100%ALLOW/WARN/BLOCK の判定、影響範囲
コンプライアンスエクスポート50100%SOC 2、HIPAA、CSV 形式
強制適用40100%強制/勧告モード、上書き
監査チェーン35100%HMAC-SHA256 チェーンの整合性
コードグラフ33100%インポートの解析、影響範囲、ロックのマッピング
仕様コンパイラー24100%自然言語から制約への解析、自動適用
型付き制約13100%数値、範囲、状態、時間の検証
Claude 回帰9100%Vue の検出、安全な意図、パッチゲートウェイ
質問のフレーミング9100%「もし〜したら」と「どれくらい難しいか」
REST API v29100%型付き制約のエンドポイント、SSE
PII/エクスポート検出8100%SSN、メールのエクスポート、データアクセス違反
Guardian(保護)47100%設定不要のルールファイル抽出
合計1043100%24のスイート、15以上のドメイン

再現可能なプロジェクトテストゲート: v5.8.0 では、リポジトリ内のテスト1,043件すべてに合格します。これらはプロジェクトが保守する自動シナリオであり、第三者認証ではありません。npm test を実行して、ご自身でテストしてください。

フィンテック、Eコマース、IoT、医療、SaaS、ゲーム、バイオテクノロジー、航空宇宙、決済、給与計算、ロボティクス、自律システム、通信、保険、政府機関でテスト済みです。インドの決済ゲートウェイ11社すべてを検出します。UI/外観上の操作で誤検出はゼロです。


開発者の利用シナリオのシミュレーション

John のシナリオ — Bolt.new を使うインディー開発者

8セッションでEコマースアプリを構築します。5件のロック(認証、Firebase、Supabase、配送、Stripe)を設定します。直接的な違反をすべて検出します。婉曲的な攻撃もすべて検出します(「認証を整理する」「データベースを最新化する」「サーバーレスを効率化する」)。安全な操作(商品ページ、カート、ダークモード)の誤検出はゼロです。86件中86件のテストに合格しました。

Sam のシナリオ — HIPAA 対応の病院 ERP を構築するシニアエンジニア

8件の HIPAA ロックを設定し、10セッションにわたって作業します。違反をすべて検出します。PHI の公開、暗号化の削除、監査の無効化、MFA のダウングレード、FHIR の回避が対象です。婉曲的な HIPAA 攻撃も検出します(「データフローを簡素化する」「認証を最新化する」)。認証、RBAC、暗号化、コンプライアンスエクスポートのワークフロー全体を検証済みです。124件中124件のテストに合格しました。

料金

プラン価格内容
Free$010 個のロック、競合検出、MCP、CLI
Pro$19/moロック無制限、HMAC 監査、コンプライアンス用エクスポート
Enterprise$99/mo+ RBAC、暗号化、SSO、ポリシー・アズ・コード

変更履歴

以前のバージョンの機能紹介です。上記の「クイックスタート」と「新機能」では v5.7.0~v5.8.0 を取り上げています。このセクションでは、v5.0~v5.5 でリリースされた機能の詳細を掲載しています。

v5.4 — ドリフトスコア、ロックカバレッジ、ロック強化

ドリフトスコア。 AI が構築したプロジェクトは、当初の意図からどれほど逸脱しているでしょうか? これに答えられるのは SpecLock だけです。何を 意図した のかと、何が 実行された のかの両方を把握しているのは SpecLock だけだからです。

$ speclock drift

Drift Score: 23/100 (B) — minor drift
Trend: improving | Period: 30 days | Active locks: 8

Signal Breakdown:
  Violations:      6/30  (4 violations in 12 checks)
  Overrides:       5/20  (1 override)
  Reverts:         3/15  (1 revert detected)
  Lock churn:      0/15  (0 removed, 3 added)
  Goal stability:  0/10  (1 goal change)
  Session gaps:    9/10  (3/5 unsummarized)

README badge: ![Drift Score](https://img.shields.io/badge/drift_score-23%2F100-brightgreen.svg)

ロックカバレッジ監査。 SpecLock がコードベースをスキャンし、保護されていない箇所を知らせます。

$ speclock coverage

Lock Coverage: 60% (B) — partially protected

  [COVERED] CRITICAL authentication   2 file(s)
  [EXPOSED] CRITICAL payments         1 file(s)
  [COVERED] CRITICAL secrets          0 file(s)
  [COVERED] HIGH     api-routes       2 file(s)

Suggested Locks (ready to apply):
  1. [CRITICAL] payments (1 file at risk)
     speclock lock "Never modify payment processing or billing without permission"

セキュリティスキャナーのように機能しますが、AI の制約の抜け漏れを検出します。

ロック強化。 ロックの内容が曖昧すぎる可能性があります。SpecLock は各ロックを評価し、改善案を提示します。

$ speclock strengthen

Lock Strength: 72/100 (B) — 3 strong, 1 weak

[WEAK  ] 45/100 (D)  "don't touch auth"
          Issue: Too vague — short locks miss edge cases
          Issue: No specific scope
          Suggested: "Never modify, refactor, or delete auth..."

[STRONG] 90/100 (A)  "Never expose API keys in client-side code, logs, or error messages"
v5.3 — ユニバーサルルール同期、インシデント再生、安全テンプレート

ユニバーサルルール同期。 1 つのコマンドで、SpecLock の制約をすべての AI コーディングツールに同期できます。

speclock sync --all
SpecLock Sync Complete
  ✓ Cursor             → .cursor/rules/speclock.mdc
  ✓ Claude Code        → CLAUDE.md
  ✓ AGENTS.md          → AGENTS.md (Linux Foundation standard)
  ✓ Windsurf           → .windsurf/rules/speclock.md
  ✓ GitHub Copilot     → .github/copilot-instructions.md
  ✓ Gemini             → GEMINI.md
  ✓ Aider              → .aider.conf.yml

7 file(s) synced.

SpecLock で制約を一度定義すれば、あらゆる場所に同期できます。単一の形式には --format cursor、ドライランには --preview、対応形式の確認には --list を指定します。

インシデント再生。 AI コーディングセッションのフライトレコーダーです。

speclock replay

Session: ses_a1b2c3 (claude-code, 47 min)
────────────────────────────────────────────
14:02  [ALLOW]   Create user profile component
14:08  [ALLOW]   Add form validation
14:15  [WARN]    Simplify authentication flow
                 → matched lock: "Never modify auth"
14:23  [BLOCK]   Clean up old user records
                 → euphemism detected: "clean up" = deletion
14:31  [ALLOW]   Update landing page hero section

Score: 5 events | 3 allowed | 1 warned | 1 BLOCKED

speclock replay --list でセッション一覧を表示し、--session <id> で特定のセッションを再生します。

安全テンプレート。 すぐに使える制約パックです。

speclock template apply safe-defaults   # 5 locks — "Vibe Coding Seatbelt"
speclock template apply solo-founder    # 3 locks — auth, payments, data
speclock template apply hipaa           # 8 locks — HIPAA healthcare
speclock template apply api-stability   # 6 locks — API contract protection

Safe Defaults は、データベースの削除、認証の削除、シークレットの漏えい、エラーハンドリングの削除、ロギングの無効化という、AI による最も一般的な 5 つの問題を防ぎます。

v5.2 — AI パッチファイアウォール

説明だけでなく、実際の差分をレビューします。意図のレビューでは見逃す問題を検出します。

POST /api/v2/gateway/review-diff
{
  "description": "Remove password column",
  "diff": "diff --git a/migrations/001.sql ..."
}

→ { verdict: "BLOCK",
    reviewMode: "unified",
    intentVerdict: "ALLOW",     ← description alone looks safe
    diffVerdict: "BLOCK",       ← diff reveals destructive schema change
    signals: {
      schemaChange: { score: 12, isDestructive: true },
      interfaceBreak: { score: 10 },
      protectedSymbolEdit: { score: 8 },
      dependencyDrift: { score: 5 },
      publicApiImpact: { score: 0 }
    },
    recommendation: { action: "require_approval" } }

シグナル検出: インターフェースの破壊、ロック領域内の保護対象シンボルの編集、依存関係のドリフト、スキーマ/マイグレーションの破壊的変更、公開 API ルートの変更。強制エスカレーション: スキーマの破壊的変更、API ルートの削除、保護対象シンボルの編集を自動的に BLOCK します。統合レビュー: 意図(35%)と差分(65%)を統合し、より厳しい判定を採用します。

v5.1 — パッチゲートウェイ

1 回の API 呼び出しで、すべての変更を審査します。説明とファイルリストを受け取り、ALLOW/WARN/BLOCK を返します。

speclock_review_patch({
  description: "Add social login to auth page",
  files: ["src/auth/login.js"]
})

→ { verdict: "BLOCK", riskScore: 85,
    reasons: [{ type: "semantic_conflict", lock: "Never modify auth" }],
    blastRadius: { impactPercent: 28.3 },
    summary: "BLOCKED. 1 constraint conflict. 12 files affected." }

セマンティックな競合検出、ロックとファイルのマッピング、影響範囲、型付き制約の認識を組み合わせ、単一のリスクスコア(0~100)を算出します。

v5.0 — 仕様コンパイラー、コードグラフ、型付き制約、Python SDK、ROS2

仕様コンパイラー。 PRD、README、アーキテクチャドキュメントを貼り付けると、SpecLock がすべての制約を自動で抽出します。

Input:  "We're building a fintech app. Use React and FastAPI.
         Never touch the auth module. Response time must stay
         under 200ms. Payments go through Stripe."

Output: 2 text locks:
          - "Never touch the auth module"
          - "Payments go through Stripe — don't change provider"
        1 typed lock:
          - response_time_ms <= 200 (numerical)
        2 decisions:
          - "Use React for frontend"
          - "Use FastAPI for backend"

デフォルトでは Gemini Flash を使用します(コンパイル 1000 回あたり $0.01)。

コードグラフ。 コードベースの依存関係をリアルタイムでグラフ化します。JS/TS/Python のインポートを解析します。

$ speclock blast-radius src/core/memory.js

Direct Dependents:  8 files
Transitive Impact:  14 files (33% of codebase)
Max Depth:          4 hops

ロックとファイルのマッピングでは、ロックをソースファイルに自動で対応付けます。モジュール検出では、ファイルを論理モジュールごとにグループ化します。

型付き制約。 自律システム、IoT、ロボティクス向けのリアルタイムな値および状態チェックです。

// Numerical: speed must be <= 2.0 m/s
{ constraintType: "numerical", metric: "speed_mps", operator: "<=", value: 2.0 }

// Range: temperature must stay between 20-25°C
{ constraintType: "range", metric: "temperature_c", min: 20, max: 25 }

// State: never go from armed → disarmed without approval
{ constraintType: "state", metric: "system_mode", forbidden: [{ from: "armed", to: "disarmed" }] }

// Temporal: heartbeat must occur every 30 seconds
{ constraintType: "temporal", metric: "heartbeat_s", operator: "<=", value: 30 }

Python SDK と ROS2。

pip install speclock-sdk
from speclock import SpecLock

sl = SpecLock(project_root=".")
result = sl.check_text("Switch database to MongoDB")
result = sl.check_typed(metric="speed_mps", value=3.5)
result = sl.check(action="Increase speed", speed_mps=3.5)

Node.js MCP サーバーと同じ .speclock/brain.json を使用します。ROS2 Guardian Node は /joint_states、/cmd_vel、/speclock/state_transition を購読し、違反を /speclock/violations に公開します。また、/speclock/emergency_stop を使って緊急停止を実行します。


応援する

SpecLock が午前 3 時のインシデントからプロジェクトを守ってくれたら、このバッジを README に追加してください。

[![Protected by SpecLock](https://img.shields.io/badge/Protected_by-SpecLock-FF6B2C?style=flat&logo=lock)](https://github.com/sgroy10/speclock)

または、ターミナルで speclock badge を実行すると、すべてのバリエーションを確認できます。全バッジ一覧:sgroy10.github.io/speclock/badge.html · ドキュメント全文:BADGES.md。

SpecLock を導入する人が増えるほど、ほかの開発者が SpecLock を知り、AI にプロジェクトを台無しにされずに済むようになります。ありがとうございます。

情報を広める

SpecLockをより多くの開発者に届けるために、ぜひご協力ください。投稿に必要なものはすべて、ツイート、LinkedInの投稿案、Redditのテンプレート、Show HNの紹介文、Discordのメッセージ、一言紹介、エレベーターピッチまで、VIRAL-KIT.md にあらかじめ作成され、事実確認も済んでいます。コピーして、貼り付けて、送るだけです。手間はかかりません。


コントリビューション

GitHubでのIssueやPRを歓迎します。

ライセンス

MIT

作者

SpecLockは**Sandeep Roy**が開発・保守しています。

Sandeep Royは、AIコーディングセッション全体でプロジェクトのルールを適用するAI Constraint Engine、SpecLockの唯一の開発者です。51個のMCPツール、セマンティックな競合検出エンジン、エンタープライズ向けセキュリティ機能(SOC 2、HIPAA、RBAC、暗号化)、公開前のテストゲートは、すべてSandeep Royが設計・構築しました。


SpecLock v5.8.0 — Claude Codeによるネイティブな適用、MCP連携、コアテスト1,043件、51個のMCPツールを備えた、クロスプラットフォームのアクションガードレール。Sandeep Royが開発。

コメント

MCP は初めてですか?

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

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