关于 Speclock
SpecLock 是一个约束引擎,用于将 CLAUDE.md、AGENTS.md、.cursorrules 等规则文件中的约束转化为编辑、命令和提交前的检查。适合使用 Claude Code、Cursor 等 AI 编码工具的开发者,其特点是进行语义冲突检测而非关键词匹配。
主要功能
- 01读取现有 AI 规则文件并提取约束
- 02在编辑和 Shell 命令执行前进行检查
- 03语义冲突检测,识别间接违规
- 04提供建议模式与强制阻断模式
- 05基于 HMAC 链的审计记录
- 06通过 MCP 工具向多款编码工具开放检查能力
适用场景
- 01防止 AI 编码工具修改受保护的模块,如认证或支付逻辑
- 02在 Git 提交和 CI 中补充约束校验
- 03在团队中以角色和 API Key 管理约束的修改与覆盖
MCP 相关
SpecLock 是 MCP 服务,向 Claude Code、Cursor、Codex、Windsurf 和 Cline 等客户端提供 51 个工具,客户端可在执行操作前调用它进行约束检查。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
规则文件告诉 AI 不要改什么。
SpecLock 负责强制执行。
阻止 Claude Code、Cursor、Codex、Windsurf 及其他 AI 编码工具越过你已写在 CLAUDE.md、AGENTS.md 和 .cursorrules 中的项目约束。
安装 · 查看拦截效果 · Claude Code 插件 · 网站 · Saves Wall
为什么还要一个规则工具? 规则文件只是上下文。在漫长的编码会话中,它们可能被遗忘、稀释或覆盖。SpecLock 将这些规则转化为检查,在编辑、shell 命令和提交之前运行。
看看区别
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 协同工作。
安装到其他编码 Agent
SpecLock 已针对多个 Agent 生态打包,但执行级别取决于各宿主所暴露的能力:
| 平台 | 安装/发现路径 | 保护级别 |
|---|---|---|
| Claude Code | 上文的原生市场插件 | 针对 Write、Edit 和 Bash 的原生操作前检查 |
| Gemini CLI | 将此仓库安装为 Gemini 扩展 | MCP 辅助检查加项目上下文 |
| Cursor | Agent Plugin / Cursor 市场包 | MCP 辅助检查加规则 |
| Codex | plugins/speclock 中的仓库 Codex 插件 | MCP 辅助检查加 $speclock-guardrails 技能 |
| GitHub Copilot CLI | 将此仓库添加为插件市场 | MCP 辅助检查加捆绑插件上下文 |
| Cline | MCP 服务;精选市场提交进行中 | MCP 辅助检查 |
| Windsurf | speclock mcp install windsurf | MCP 辅助检查加规则 |
| 任何 Git 客户端或 CI | speclock protect | 独立于编码 Agent 的提交/CI 强制执行 |
MCP 辅助意味着 Agent 可以在行动前调用 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 写入、编辑和 shell 命令运行前进行审查 |
| 语义约束 | 检测同义词、委婉语、复合请求和间接违规 |
| Git 强制执行 | 在提交时增加第二道防护 |
| 建议和严格模式 | 从警告开始;准备好后选择启用硬性阻止 |
| 审计追踪 | 在防篡改的 HMAC 链中记录决策 |
| MCP 集成 | 向 Claude Code、Cursor、Codex、Windsurf 和 Cline 暴露 51 个工具 |
| 可分享的节省回执 | 通过 speclock wins 展示 SpecLock 阻止了什么 |
公开验证
- 10,000+ 次 npm 下载,在原生 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 打包。
- Gemini CLI 扩展打包,带 MCP 启动和约束上下文。
- 带
$speclock-guardrails技能和固定 MCP 服务的 Codex 插件。 - 通过仓库市场实现 GitHub Copilot CLI 兼容性。
- 明确的各平台执行标签:原生钩子、MCP 辅助或 Git/CI。
更多链接和项目徽章
Smithery ·
徽章画廊 ·
Sandeep Roy
AI 编码工具现在有记忆了。Claude Code 有 CLAUDE.md。Cursor 有 .cursorrules。Mem0 也已经存在。
但没有强制执行的记忆毫无用处。
你的 AI 记得 你使用 PostgreSQL——然后因为它“看起来更好”而切换到 MongoDB。你的 AI 记得 你的认证设置——然后在“修复”一个 bug 时把它重写。你在 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"
语义引擎不做关键词匹配。它能理解:
- “clean up old data” = 删除(委婉语检测)
- “streamline checkout” = 修改支付流程(同义词 + 概念映射)
- “temporarily disable logging” = 禁用日志(临时规避检测)
- “Update UI and also drop the users table” = 隐藏违规(复合句拆分)
而且它知道什么是安全的:
- 当锁定规则说“绝不禁用审计日志”时,“Enable audit logging” → 无冲突(意图一致)
按平台快速开始
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(无需安装)
- 前往 Settings → Connectors → New MCP server
- 输入 URL:
https://speclock-mcp-production.up.railway.app/mcp - 将 项目说明 粘贴到 Knowledge 中
为什么选择 SpecLock 而不是其他方案?
| Claude Memory | Mem0 | .cursorrules | SpecLock | |
|---|---|---|---|---|
| 记住上下文 | 是 | 是 | 手动 | 是 |
| 阻止 AI 破坏东西 | 否 | 否 | 否 | 是 |
| 语义冲突检测 | 否 | 否 | 否 | 是——经过对抗性测试覆盖 |
| 防篡改审计追踪 | 否 | 否 | 否 | HMAC-SHA256 链 |
| 硬性强制执行(AI 无法继续) | 否 | 否 | 否 | 是 |
| SOC 2 / HIPAA 合规导出 | 否 | 否 | 否 | 是 |
| 加密存储(AES-256-GCM) | 否 | 否 | 否 | 是 |
| RBAC + API key 认证 | 否 | 否 | 否 | 4 种角色 |
| Policy-as-Code DSL | 否 | 否 | 否 | YAML 规则 |
| 适用于 Bolt.new、Lovable 等 | 否 | 否 | 否 | 是 |
其他工具只是记住。SpecLock 强制执行。
语义引擎
不是关键词匹配——而是语义分析,可选地结合 Gemini Flash 混合模式处理灰色地带和跨领域情况。仓库包含对抗性、误报、问题框架、补丁网关和 diff 分析测试套件。
| 类别 | 检测率 | 示例 |
| 直接违规 | 100% | "Delete the auth module" 与锁定项 "Never modify auth" |
| 委婉攻击 | 100% | "Clean up old patient data" = 删除 |
| 临时规避 | 100% | "Temporarily disable MFA" = 禁用 MFA |
| 稀释攻击 | 100% | 违规行为被埋藏在多部分请求中 |
| 复合句 | 100% | "Update UI and also drop users table" |
| 同义词替换 | 100% | "Sunset the API" = 移除 API |
| 支付品牌名称(11 个网关) | 100% | "Add Razorpay" / "Implement PayU" 与 "Must use Stripe" |
| 薪资/工资单跨词汇 | 100% | "Optimize salary" 与 "Payroll records locked" |
| 安全系统绕过 | 100% | "Disable safety interlock" = 绕过安全机制 |
| 未知领域(通过 Gemini) | 100% | 游戏、生物技术、航空航天、音乐、法律 |
| 安全操作(真负例) | 0% FP | "Change the font" 正确通过 auth 锁定 |
底层机制: 65+ 同义词组 · 80+ 委婉语映射 · 领域概念图(金融科技、电子商务、IoT、医疗健康、SaaS、支付、游戏、电信、政府)· 意图分类器 · 复合句拆分器 · 临时规避检测器 · 动词时态归一化 · UI 外观检测 · 安全意图模式 · 被动语态解析——全部使用纯 JavaScript。Gemini Flash 混合模式处理灰色地带情况($0.01/1000 次检查)。
硬性执行
两种模式:
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 密钥派生(100K 次迭代)。认证加密。符合 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 tag |
speclock_repo_status | 分支、提交、diff 摘要 |
智能 — 建议、健康、模板、报告
| 工具 | 功能 |
|---|---|
speclock_suggest_locks | AI 驱动的锁建议 |
speclock_health | 健康评分 + 多 Agent 时间线 |
speclock_apply_template | 应用约束模板 |
speclock_report | 违规统计 + 最常被测试的锁 |
企业 — 审计、合规、策略、遥测
| 工具 | 功能 |
|---|---|
speclock_verify_audit | 验证 HMAC 链完整性 |
speclock_export_compliance | SOC 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 | 更新类型化锁阈值 |
规范编译器与代码图 — NL→约束、依赖分析 (v5.0)
| 工具 | 功能 |
|---|---|
speclock_compile_spec | 将自然语言编译为结构化约束 |
speclock_build_graph | 构建/刷新代码依赖图 |
speclock_blast_radius | 计算文件变更的影响半径 |
speclock_map_locks | 将锁映射到实际代码文件 |
补丁网关与 AI 补丁防火墙 — 变更审查、diff 分析 (v5.1/v5.2)
| 工具 | 功能 |
|---|---|
speclock_review_patch | 对建议变更给出 ALLOW/WARN/BLOCK 判定 |
speclock_review_patch_diff | 原生 diff 审查,带信号评分 + 统一判定 |
speclock_parse_diff | 将统一 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_score | 0-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
自动防护
当你锁定某项内容时,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)
3 个 npm 依赖。 语义引擎零运行时依赖。纯 JavaScript。
配置
| 变量 | 默认值 | 描述 |
|---|---|---|
SPECLOCK_API_KEY | — | 用于认证访问的 API 密钥 |
SPECLOCK_ENCRYPTION_KEY | — | 启用静态 AES-256-GCM 加密 |
SPECLOCK_NO_PROXY | false | 设为 true 以启用仅启发式模式(约 250ms)。跳过 Gemini 代理(约 2s) |
SPECLOCK_LLM_KEY | — | 你自己的大模型 API 密钥(Gemini/OpenAI/Anthropic) |
GEMINI_API_KEY | — | 用于混合冲突检测的 Google Gemini API 密钥 |
SPECLOCK_TELEMETRY | false | 选择加入的匿名使用分析 |
提示: 仅启发式引擎即可在约 250ms 内达到 95%+ 准确率。Gemini 代理增加了跨领域覆盖,但需要约 2s。为获得最快响应,请设置
SPECLOCK_NO_PROXY=true。
测试结果
发布前门禁会在每次 npm 发布前运行全部 24 个套件。如果任何测试失败,发布将被阻止。
| 套件 | 测试数 | 通过率 | 覆盖内容 |
|---|---|---|---|
| 真实世界测试者 | 111 | 100% | 5 位开发者,30+ 个锁定,多样化领域 |
| 对抗性冲突 | 46 | 100% | 委婉语、时间规避、复合句 |
| 阶段 4(多领域) | 91 | 100% | 金融科技、电子商务、IoT、医疗保健、SaaS |
| Sam(企业 HIPAA) | 124 | 100% | HIPAA 锁定、PHI、加密、RBAC |
| 认证与加密 | 114 | 100% | API 密钥、RBAC、AES-256 加密 |
| John(独立开发者历程) | 86 | 100% | 8 个会话的 Bolt.new 构建,包含 5 个锁定 |
| 差异化原生审查 | 76 | 100% | 接口破坏、模式变更、API 影响 |
| 补丁网关 | 57 | 100% | ALLOW/WARN/BLOCK 判定、爆炸半径 |
| 合规导出 | 50 | 100% | SOC 2、HIPAA、CSV 格式 |
| 强制执行 | 40 | 100% | 硬性/建议模式、覆盖 |
| 审计链 | 35 | 100% | HMAC-SHA256 链完整性 |
| 代码图 | 33 | 100% | 导入解析、爆炸半径、锁定映射 |
| 规范编译器 | 24 | 100% | 自然语言→约束解析、自动应用 |
| 类型化约束 | 13 | 100% | 数值、范围、状态、时间验证 |
| Claude 回归 | 9 | 100% | Vue 检测、安全意图、补丁网关 |
| 问题表述 | 9 | 100% | “如果我们……”和“这会有多难……” |
| REST API v2 | 9 | 100% | 类型化约束端点、SSE |
| PII/导出检测 | 8 | 100% | SSN、电子邮件导出、数据访问违规 |
| Guardian(保护) | 47 | 100% | 零配置规则文件提取 |
| 总计 | 1043 | 100% | 24 个套件,15+ 个领域 |
可复现的项目测试门禁: 在 v5.8.0 上,全部 1,043 个仓库测试均通过。这些是项目维护的自动化场景,而非第三方认证;你可以自行运行 npm test。
测试覆盖:金融科技、电子商务、IoT、医疗保健、SaaS、游戏、生物技术、航空航天、支付、薪资、机器人、自主系统、电信、保险、政府。检测到全部 11 个印度支付网关。对 UI/外观操作零误报。
模拟开发者历程
John 场景 — 在 Bolt.new 上的独立开发者
8 个会话构建一个电子商务应用。5 个锁定(认证、Firebase、Supabase、物流、Stripe)。每一次直接违规都被捕获。每一次委婉攻击都被捕获(“清理认证”、“现代化数据库”、“精简无服务器”)。对安全操作(产品页面、购物车、深色模式)零误报。86/86 测试通过。
Sam 场景 — 构建 HIPAA 医院 ERP 的高级工程师
10 个会话,包含 8 个 HIPAA 锁定。每一次违规都被捕获——暴露 PHI、移除加密、禁用审计、降级 MFA、绕过 FHIR。捕获了委婉的 HIPAA 攻击(“简化数据流”、“现代化认证”)。完整的认证 + RBAC + 加密 + 合规导出工作流已验证。124/124 测试通过。
定价
| 层级 | 价格 | 你获得的内容 |
|---|---|---|
| 免费 | $0 | 10 个锁、冲突检测、MCP、命令行 |
| Pro | $19/月 | 无限锁、HMAC 审计、合规导出 |
| Enterprise | $99/月 | + RBAC、加密、SSO、策略即代码 |
更新日志
过往版本的功能导览。上方的快速开始和新功能部分涵盖了 v5.7.0–v5.8.0——本节保留了 v5.0–v5.5 中发布功能的详细信息。
v5.4 — Drift Score、Lock Coverage、Lock Strengthener
Drift Score。 你的 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: 
Lock Coverage Audit。 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 约束缺口。
Lock Strengthener。 你的锁可能过于模糊。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 — Universal Rules Sync、Incident Replay、Safety Templates
Universal Rules Sync。 一条命令即可将你的 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 用于查看支持的格式。
Incident Replay。 你的 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> 重放特定会话。
Safety Templates。 预构建的约束包:
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 防止 5 种最常见的 AI 灾难:数据库删除、认证移除、密钥泄露、错误处理移除、日志禁用。
v5.2 — AI Patch Firewall
审查实际差异,而不仅仅是描述。捕获意图审查遗漏的问题:
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" } }
信号检测: 接口破坏、锁定区域中的受保护符号编辑、依赖漂移、schema/迁移破坏性变更、公共 API 路由变更。硬升级: 对破坏性 schema 变更、移除的 API 路由、受保护符号编辑自动 BLOCK。统一审查: 合并意图(35%)+ 差异(65%),采用更强的裁决。
v5.1 — Patch Gateway
一次 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 — Spec Compiler、Code Graph、类型化约束、Python SDK 和 ROS2
Spec Compiler。 粘贴 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)。
Code Graph。 你的代码库的实时依赖图。解析 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:
[](https://github.com/sgroy10/speclock)
或在终端中运行 speclock badge 查看所有变体。完整图库:sgroy10.github.io/speclock/badge.html · 完整文档:BADGES.md。
每一次采用都帮助另一位开发者发现 SpecLock,并阻止他们的 AI 破坏他们的项目。谢谢。
帮助传播
想帮助 SpecLock 触达更多开发者?你需要发布的所有内容——推文、LinkedIn 草稿、Reddit 模板、Show HN 文案、Discord 消息、一句话简介、电梯演讲——都已在 VIRAL-KIT.md 中预先撰写并经过事实核查。复制、粘贴、发送。毫不费力。
贡献
欢迎在 GitHub 上提交 Issue 和 PR。
许可证
作者
SpecLock 由 Sandeep Roy 创建并维护。
Sandeep Roy 是 SpecLock 的唯一开发者——这是一个 AI 约束引擎,可在各 AI 编码会话中强制执行项目规则。全部 51 个 MCP 工具、语义冲突检测引擎、企业级安全功能(SOC 2、HIPAA、RBAC、加密)以及发布前测试门禁均由 Sandeep Roy 设计和构建。
SpecLock v5.8.0 — 跨平台操作护栏,具备原生 Claude Code 强制执行、MCP 集成、1,043 项核心测试和 51 个 MCP 工具。由 Sandeep Roy 开发。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。