SpecLock
왜 또 다른 규칙 도구인가? 규칙 파일은 맥락입니다. 긴 코딩 세션 중에 잊히거나, 희석되거나, 무시될 수 있습니다. 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 임시 비활성화" 같은 간접적 행위가 활성 제약을 위반할 때 이를 포착합니다.
Related MCP server: CodeHealth MCP
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 | 위의 네이티브 마켓플레이스 플러그인 |
|
Gemini CLI | 이 저장소를 Gemini 확장으로 설치 | MCP 지원 검사 + 프로젝트 맥락 |
Cursor | Agent Plugin / Cursor 마켓플레이스 패키지 | MCP 지원 검사 + 규칙 |
Codex |
| MCP 지원 검사 + |
GitHub Copilot CLI | 이 저장소를 플러그인 마켓플레이스로 추가 | MCP 지원 검사 + 번들 플러그인 맥락 |
Cline | MCP 서버; 큐레이션된 마켓플레이스 제출 진행 중 | MCP 지원 검사 |
Windsurf |
| MCP 지원 검사 + 규칙 |
모든 Git 클라이언트 또는 CI |
| 코딩 에이전트와 무관한 커밋/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 강제 | 커밋 시점에 두 번째 가드를 추가합니다 |
권고 및 엄격 모드 | 경고로 시작하고, 준비되면 하드 차단을 선택합니다 |
감사 추적 | 변조 방지 HMAC 체인에 결정을 기록합니다 |
MCP 통합 | Claude Code, Cursor, Codex, Windsurf, Cline에 51개 도구를 노출합니다 |
공유 가능한 저장 영수증 |
|
공개적으로 입증됨
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 패키징.
MCP 시작 및 제약 맥락을 포함한 Gemini CLI 확장 패키징.
$speclock-guardrails스킬과 고정 MCP 서버를 포함한 Codex 플러그인.저장소 마켓플레이스를 통한 GitHub Copilot CLI 호환성.
플랫폼별 강제 라벨 명시: 네이티브 훅, MCP 지원, 또는 Git/CI.
문제
AI 코딩 도구에는 이제 메모리가 있습니다. Claude Code에는 CLAUDE.md가 있습니다. Cursor에는 .cursorrules가 있습니다. Mem0도 존재합니다.
하지만 강제가 없는 메모리는 쓸모없습니다.
AI가 PostgreSQL을 사용한다는 것을 기억하지만 — "더 나아 보인다"는 이유로 MongoDB로 전환합니다. AI가 인증 설정을 기억하지만 — 버그를 "수정"하면서 다시 작성합니다. 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 업데이트 및 사용자 테이블 삭제" = 숨은 위반 (복합 분리기)
그리고 안전한 것도 알고 있습니다:
잠금이 "감사 로깅을 비활성화하지 마"라고 할 때 "감사 로깅 활성화" → 충돌 없음 (의도 정렬)
플랫폼별 빠른 시작
Bolt.new / Aider / 모든 npm 플랫폼
npx speclock setup --goal "Build my app" --template nextjsSPECLOCK.md를 만들고, package.json에 규칙을 주입하고, .speclock/context/latest.md를 생성합니다. AI가 이를 자동으로 읽습니다.
Claude Code
위의 명령을 사용하여 플러그인을 설치하세요. 플러그인 훅 없이 MCP 전용 설정을 원한다면 .mcp.json에 다음을 추가하세요:
{
"mcpServers": {
"speclock": {
"command": "npx",
"args": ["--yes", "speclock@5.8.0", "serve", "--project", "."]
}
}
}Cursor / Windsurf / Cline
동일한 구성 — .cursor/mcp.json 또는 동등한 파일에 추가하세요.
Lovable (설치 없음)
설정 → 커넥터 → 새 MCP 서버로 이동
URL 입력:
https://speclock-mcp-production.up.railway.app/mcp프로젝트 지침을 Knowledge에 붙여넣기
대안보다 SpecLock이 나은 이유?
Claude Memory | Mem0 |
| SpecLock | |
맥락 기억 | 예 | 예 | 수동 | 예 |
AI가 무언가를 깨뜨리는 것을 차단 | 아니요 | 아니요 | 아니요 | 예 |
의미론적 충돌 감지 | 아니요 | 아니요 | 아니요 | 예 — 적대적 테스트로 검증됨 |
변조 방지 감사 추적 | 아니요 | 아니요 | 아니요 | HMAC-SHA256 체인 |
하드 강제 (AI가 진행할 수 없음) | 아니요 | 아니요 | 아니요 | 예 |
SOC 2 / HIPAA 규정 준수 내보내기 | 아니요 | 아니요 | 아니요 | 예 |
암호화 저장 (AES-256-GCM) | 아니요 | 아니요 | 아니요 | 예 |
RBAC + API 키 인증 | 아니요 | 아니요 | 아니요 | 4개 역할 |
Policy-as-Code DSL | 아니요 | 아니요 | 아니요 | YAML 규칙 |
Bolt.new, Lovable 등에서 작동 | 아니요 | 아니요 | 아니요 | 예 |
다른 도구는 기억합니다. SpecLock은 강제합니다.
의미론적 엔진
키워드 매칭이 아닌 의미론적 분석이며, 회색 지대 및 교차 도메인 사례를 위한 선택적 Gemini Flash 하이브리드가 포함됩니다. 저장소에는 적대적, 오탐, 질문 프레이밍, 패치 게이트웨이, diff 분석 테스트 스위트가 포함되어 있습니다.
왜 또 다른 규칙 도구인가? 규칙 파일은 맥락입니다. 긴 코딩 세션 중에 잊히거나, 희석되거나, 무시될 수 있습니다. 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 | 위의 네이티브 마켓플레이스 플러그인 |
|
Gemini CLI | 이 저장소를 Gemini 확장으로 설치 | MCP 지원 검사 + 프로젝트 맥락 |
Cursor | Agent Plugin / Cursor 마켓플레이스 패키지 | MCP 지원 검사 + 규칙 |
Codex |
| MCP 지원 검사 + |
GitHub Copilot CLI | 이 저장소를 플러그인 마켓플레이스로 추가 | MCP 지원 검사 + 번들 플러그인 맥락 |
Cline | MCP 서버; 큐레이션된 마켓플레이스 제출 진행 중 | MCP 지원 검사 |
Windsurf |
| MCP 지원 검사 + 규칙 |
모든 Git 클라이언트 또는 CI |
| 코딩 에이전트와 무관한 커밋/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 강제 | 커밋 시점에 두 번째 가드를 추가합니다 |
권고 및 엄격 모드 | 경고로 시작하고, 준비되면 하드 차단을 선택합니다 |
감사 추적 | 변조 방지 HMAC 체인에 결정을 기록합니다 |
MCP 통합 | Claude Code, Cursor, Codex, Windsurf, Cline에 51개 도구를 노출합니다 |
공유 가능한 저장 영수증 |
|
공개적으로 검증됨
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 패키징.
MCP 시작 및 제약 맥락을 포함한 Gemini CLI 확장 패키징.
$speclock-guardrails스킬과 고정 MCP 서버를 포함한 Codex 플러그인.저장소 마켓플레이스를 통한 GitHub Copilot CLI 호환성.
플랫폼별 강제 라벨 명시: 네이티브 훅, MCP 지원, 또는 Git/CI.
문제
AI 코딩 도구에는 이제 메모리가 있습니다. Claude Code에는 CLAUDE.md가 있습니다. Cursor에는 .cursorrules가 있습니다. Mem0도 존재합니다.
하지만 강제가 없는 메모리는 쓸모없습니다.
AI가 PostgreSQL을 사용한다는 것을 기억하지만 "더 나아 보인다"며 MongoDB로 전환합니다. AI가 인증 설정을 기억하지만 버그를 "수정"하면서 다시 작성합니다. "결제 로직은 절대 건드리지 마"라고 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 업데이트 및 사용자 테이블 삭제" = 숨은 위반 (복합 분리기)
그리고 안전한 것도 알고 있습니다:
잠금이 "감사 로깅을 비활성화하지 마"라고 할 때 "감사 로깅 활성화" → 충돌 없음 (의도 정렬)
플랫폼별 빠른 시작
Bolt.new / Aider / 모든 npm 플랫폼
npx speclock setup --goal "Build my app" --template nextjsSPECLOCK.md를 생성하고, package.json에 규칙을 주입하고, .speclock/context/latest.md를 생성합니다. AI가 이를 자동으로 읽습니다.
Claude Code
위의 명령을 사용하여 플러그인을 설치하세요. 플러그인 훅 없이 MCP 전용 설정을 원한다면 .mcp.json에 다음을 추가하세요:
{
"mcpServers": {
"speclock": {
"command": "npx",
"args": ["--yes", "speclock@5.8.0", "serve", "--project", "."]
}
}
}Cursor / Windsurf / Cline
동일한 구성 — .cursor/mcp.json 또는 동등한 파일에 추가하세요.
Lovable (설치 없음)
설정 → 커넥터 → 새 MCP 서버로 이동
URL 입력:
https://speclock-mcp-production.up.railway.app/mcp프로젝트 지침을 Knowledge에 붙여넣기
대안보다 SpecLock이 나은 이유는?
Claude Memory | Mem0 |
| SpecLock | |
맥락 기억 | 예 | 예 | 수동 | 예 |
AI가 무언가를 깨는 것을 차단 | 아니요 | 아니요 | 아니요 | 예 |
의미론적 충돌 감지 | 아니요 | 아니요 | 아니요 | 예 — 적대적 테스트로 검증됨 |
변조 방지 감사 추적 | 아니요 | 아니요 | 아니요 | HMAC-SHA256 체인 |
하드 강제 (AI가 진행할 수 없음) | 아니요 | 아니요 | 아니요 | 예 |
SOC 2 / HIPAA 규정 준수 내보내기 | 아니요 | 아니요 | 아니요 | 예 |
암호화 저장 (AES-256-GCM) | 아니요 | 아니요 | 아니요 | 예 |
RBAC + API 키 인증 | 아니요 | 아니요 | 아니요 | 4개 역할 |
Policy-as-Code DSL | 아니요 | 아니요 | 아니요 | YAML 규칙 |
Bolt.new, Lovable 등에서 작동 | 아니요 | 아니요 | 아니요 | 예 |
다른 도구는 기억합니다. SpecLock은 강제합니다.
의미론적 엔진
키워드 매칭이 아닌 — 의미론적 분석이며, 회색 지대 및 교차 도메인 사례를 위한 선택적 Gemini Flash 하이브리드가 포함됩니다. 저장소에는 적대적, 오탐, 질문 프레이밍, 패치 게이트웨이, diff 분석 테스트 스위트가 포함되어 있습니다.
내부 동작: 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 proceedspeclock 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)역할 | 읽기 | 잠금 쓰기 | 재정의 | 관리자 |
| 예 | — | — | — |
| 예 | — | 사유 포함 | — |
| 예 | 예 | 예 | — |
| 예 | 예 | 예 | 예 |
AES-256-GCM 암호화
export SPECLOCK_ENCRYPTION_KEY="your-secret"
speclock encrypt # Encrypts brain.json + events.log at restPBKDF2 키 파생(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/build51개 MCP 도구
도구 | 기능 |
| 프로젝트에서 SpecLock 초기화 |
| 전체 컨텍스트 패키지(핵심 도구) |
| 프로젝트 목표 설정 |
| 제약 조건 추가 + 파일 자동 가드 |
| 잠금 소프트 삭제 |
| 아키텍처 결정 기록 |
| 고정 메모 추가 |
| 배포 구성 기록 |
도구 | 기능 |
| 모든 잠금에 대한 의미론적 충돌 검사 |
| 권고/하드 모드 전환 |
| 사유 포함 재정의(감사 기록됨) |
| 재정의 감사 추적 보기 |
| 잠금에 대한 git diff 분석 |
| 제약 조건 위반 검사 |
| 커밋 전 스테이징 파일 감사 |
도구 | 기능 |
| 세션 시작 + 전체 브리핑 |
| 세션 종료 + 요약 기록 |
| 파일과 함께 변경 기록 |
| 최근 추적된 변경 사항 |
| 전체 이벤트 로그(필터 가능) |
| 롤백용 Git 태그 |
| 브랜치, 커밋, diff 요약 |
도구 | 기능 |
| AI 기반 잠금 제안 |
| 상태 점수 + 멀티 에이전트 타임라인 |
| 제약 조건 템플릿 적용 |
| 위반 통계 + 가장 많이 테스트된 잠금 |
도구 | 기능 |
| HMAC 체인 무결성 검증 |
| SOC 2 / HIPAA / CSV 보고서 |
| 정책 규칙 평가 |
| 정책 규칙 CRUD |
| 옵트인 사용 분석 |
도구 | 기능 |
| 유형화된 제약 조건 추가(숫자/범위/상태/시간적) |
| 제안된 값을 유형화된 제약 조건과 대조 확인 |
| 모든 유형화된 제약 조건 나열 |
| 유형화된 잠금 임계값 업데이트 |
도구 | 기능 |
| 자연어를 구조화된 제약 조건으로 컴파일 |
| 코드 의존성 그래프 구축/새로고침 |
| 파일 변경의 블래스트 반경 계산 |
| 잠금을 실제 코드 파일에 매핑 |
도구 | 기능 |
| 제안된 변경에 대한 ALLOW/WARN/BLOCK 판정 |
| 신호 점수 + 통합 판정을 사용한 diff 네이티브 검토 |
| 통합 diff를 구조화된 변경으로 파싱(디버그/검사) |
도구 | 기능 |
| Cursor, Claude, Copilot, Windsurf, Gemini, Aider, AGENTS.md로 제약 조건 동기화 |
| 사용 가능한 모든 동기화 형식 나열 |
| 세션 활동 리플레이 — AI가 시도한 것과 감지된 것 |
| 리플레이 가능한 세션 나열 |
| 0-100 프로젝트 무결성 지표 — AI가 의도에서 얼마나 벗어났는지 |
| 잠금 적용 범위 감사 — 보호되지 않은 코드 영역 찾기 |
| 잠금 평가 및 더 강력한 버전 제안 |
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.tsxAI가 파일을 열면 다음과 같은 내용을 보게 됩니다:
// ============================================================
// 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개. 의미론 엔진의 런타임 의존성은 0개. 순수 JavaScript.
구성
변수 | 기본값 | 설명 |
| — | 인증된 액세스를 위한 API 키 |
| — | 저장 데이터 AES-256-GCM 암호화 활성화 |
|
| 휴리스틱 전용 모드(~250ms)로 설정하려면 |
| — | 자신의 LLM API 키(Gemini/OpenAI/Anthropic) |
| — | 하이브리드 충돌 감지를 위한 Google Gemini API 키 |
|
| 옵트인 익명 사용 분석 |
팁: 휴리스틱 엔진만으로도 ~250ms에서 95% 이상의 정확도를 기록합니다. Gemini 프록시는 크로스 도메인 적용 범위를 추가하지만 ~2s가 소요됩니다. 가장 빠른 응답을 원하면
SPECLOCK_NO_PROXY=true로 설정하세요.
테스트 결과
배포 전 게이트는 모든 npm 게시 전에 24개 스위트를 모두 실행합니다. 테스트가 하나라도 실패하면 게시가 차단됩니다.
Suite | Tests | Pass Rate | What it covers |
Real-World Testers | 111 | 100% | 5 developers, 30+ locks, diverse domains |
Adversarial Conflict | 46 | 100% | Euphemisms, temporal evasion, compound sentences |
Phase 4 (Multi-domain) | 91 | 100% | Fintech, e-commerce, IoT, healthcare, SaaS |
Sam (Enterprise HIPAA) | 124 | 100% | HIPAA locks, PHI, encryption, RBAC |
Auth & Crypto | 114 | 100% | API keys, RBAC, AES-256 encryption |
John (Indie Dev Journey) | 86 | 100% | 8-session Bolt.new build with 5 locks |
Diff-Native Review | 76 | 100% | Interface breaks, schema changes, API impact |
Patch Gateway | 57 | 100% | ALLOW/WARN/BLOCK verdicts, blast radius |
Compliance Export | 50 | 100% | SOC 2, HIPAA, CSV formats |
Enforcement | 40 | 100% | Hard/advisory mode, overrides |
Audit Chain | 35 | 100% | HMAC-SHA256 chain integrity |
Code Graph | 33 | 100% | Import parsing, blast radius, lock mapping |
Spec Compiler | 24 | 100% | NL→constraints parsing, auto-apply |
Typed Constraints | 13 | 100% | Numerical, range, state, temporal validation |
Claude Regression | 9 | 100% | Vue detection, safe-intent, patch gateway |
Question Framing | 9 | 100% | "What if we..." and "How hard would it be..." |
REST API v2 | 9 | 100% | Typed constraint endpoints, SSE |
PII/Export Detection | 8 | 100% | SSN, email export, data access violations |
Guardian (Protect) | 47 | 100% | Zero-config rule file extraction |
Total | 1043 | 100% | 24 suites, 15+ domains |
재현 가능한 프로젝트 테스트 게이트: v5.8.0에서 전체 1,043개 저장소 테스트가 통과합니다. 이는 프로젝트가 유지 관리하는 자동화 시나리오로, 제3자 인증이 아닙니다. npm test로 직접 실행해 보세요.
테스트 적용 분야: 핀테크, 전자상거래, IoT, 헬스케어, SaaS, 게임, 생명공학, 항공우주, 결제, 급여, 로보틱스, 자율 시스템, 통신, 보험, 정부. 인도 결제 게이트웨이 11개 모두 감지. UI/시각적 작업에 대한 오탐지 0건.
시뮬레이션된 개발자 여정
John 시나리오 — Bolt.new의 인디 개발자
전자상거래 앱을 구축하는 8개 세션. 5개 잠금(auth, Firebase, Supabase, shipping, Stripe). 모든 직접 위반이 감지됨. 모든 완곡 표현 공격이 감지됨("clean up auth", "modernize database", "streamline serverless"). 안전한 작업(제품 페이지, 장바구니, 다크 모드)에 대한 오탐지 0건. 86/86 테스트 통과.
Sam 시나리오 — HIPAA 병원 ERP를 구축하는 시니어 엔지니어
8개 HIPAA 잠금이 적용된 10개 세션. 모든 위반이 감지됨 — PHI 노출, 암호화 제거, 감사 비활성화, MFA 다운그레이드, FHIR 우회. 완곡 표현 HIPAA 공격도 감지됨("simplify data flow", "modernize auth"). 전체 인증 + RBAC + 암호화 + 규정 준수 내보내기 워크플로우 검증 완료. 124/124 테스트 통과.
가격
Tier | Price | What you get |
Free | $0 | 10 locks, conflict detection, MCP, CLI |
Pro | $19/mo | Unlimited locks, HMAC audit, compliance exports |
Enterprise | $99/mo | + RBAC, encryption, SSO, policy-as-code |
변경 내역
이전 버전의 기능 투어입니다. 위의 Quick Start 및 What's New 섹션은 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 --allSpecLock 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 BLOCKEDspeclock 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 protectionSafe Defaults는 가장 흔한 AI 재해 5가지를 방지합니다: 데이터베이스 삭제, 인증 제거, 비밀 노출, 오류 처리 제거, 로깅 비활성화.
v5.2 — AI Patch Firewall
설명이 아닌 실제 diff를 검토합니다. 의도 검토가 놓치는 것을 포착합니다:
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%) + diff(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, Typed Constraints, 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를 사용합니다(1,000회 컴파일당 $0.01).
Code Graph. 코드베이스의 실시간 의존성 그래프. JS/TS/Python import를 파싱합니다.
$ speclock blast-radius src/core/memory.js
Direct Dependents: 8 files
Transitive Impact: 14 files (33% of codebase)
Max Depth: 4 hops잠금-파일 매핑이 잠금을 소스 파일에 자동 매핑하고, 모듈 감지가 파일을 논리적 모듈로 그룹화합니다.
Typed Constraints. 자율 시스템, 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-sdkfrom 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**에 사전 작성되고 사실 확인되어 있습니다. 복사, 붙여넣기, 전송. 노력 제로.
기여
이슈와 PR은 GitHub에서 환영합니다.
라이선스
저자
SpecLock은 **Sandeep Roy**가 만들고 유지 관리합니다.
Sandeep Roy는 AI 코딩 세션 전반에 걸쳐 프로젝트 규칙을 적용하는 AI 제약 엔진인 SpecLock의 단독 개발자입니다. 51개 MCP 도구 전체, 의미론적 충돌 감지 엔진, 엔터프라이즈 보안 기능(SOC 2, HIPAA, RBAC, 암호화), 그리고 출시 전 테스트 게이트는 모두 Sandeep Roy가 설계하고 구축했습니다.
This server cannot be deployed
Maintenance
Related MCP Connectors
Research-backed linting + generation for agent context files (CLAUDE.md, AGENTS.md, Cursor rules).
Constitutional AI kernel with 13 MCP tools, 888_JUDGE verdict pipeline, and VAULT999 ledger.
Enforces architectural invariants and code quality rules inside your AI agent's edit loop.
AI Visibility and Content Intelligence tools for Claude and MCP-compatible agents.
Related MCP Servers
- AlicenseNot gradedqualityFmaintenanceGovernance kernel for AI agents — policy enforcement, code safety verification, multi-model hallucination detection (CMVK), trust attestation (IATP), and immutable audit trails. Works with Claude Desktop, Cursor, and any MCP client.74MIT
- AlicenseAqualityAmaintenanceAI-powered codebase health analysis — detects dead code, circular dependencies, coupling issues, and architectural drift. 6 MCP tools for Claude Desktop, Cursor, Windsurf, and Slack.661 npmMIT
- FlicenseNot gradedqualityAmaintenanceAnalyzes repositories, explains architecture, calculates change impact, and enforces guardrails for AI Agents like Claude Code, Cursor, and Codex via MCP tools.-
- FlicenseNot gradedqualityBmaintenancePolicy-as-code gate for AI-SDLC, providing MCP tools to review prompts, diff tool manifests, vet MCP servers, and run evaluation suites for LLM agent repos.1-