
English · 한국어
코드는 LLM이 쓴다 — cladding은 그 전과 후를 책임진다.
cladding(외장재)이라는 이름 그대로, 호스트 LLM을 감싸는 검증 층.
Ironclad 표준의 공식 reference 구현.
호스트 LLM(Claude Code · Codex · Gemini · Cursor)이 일을 시작하기 전에 프로젝트의 의도를 넣어 주고,
일을 마친 후에 36개 검출기와 15단계 게이트로 결과를 검증한다. 같은 목표를 향한 분업이다.
이 루프가 노리는 것은 하나 —
AI의 "다 됐습니다"를 말이 아니라 증명으로 만드는 것.
의도는 기록으로 남고 · 어긋남은 자동으로 막히고 · 완료는 검증 서명으로 증명된다.
그래서 AI가 짠 코드를 사람이 짠 코드만큼 믿고 내보낼 수 있다.
개발자인 당신에게는 — AI 코드 리뷰에 쓰는 시간이 줄고, 6개월 뒤에도 코드의 왜가 남아 있고,
배포 전 "정말 다 된 건가"를 더 이상 감으로 판단하지 않아도 된다는 뜻이다.
cladding은 코드를 쓰지 않는다. 코드를 쓰는 건 언제나 호스트 LLM이다. cladding이 맡는 건 LLM이 잘하지 못하는 두 가지 — 시작할 때 의도를 정확히 기억시키는 일과 끝났을 때 결과를 기계적으로 검증하는 일이다.
이 루프가 도는 동안 사용자는 평소처럼 자연어로 개발하면 된다 — 외울 명령이 없다.
실시간 개입(지도 주입 · 즉시 차단 · 종료 차단)은 Claude Code에서 전부 동작한다. Codex · Gemini · Cursor에서는 같은 검증을 대화 속 도구 호출과 git·CI 관문으로 수행한다.
AI 코딩의 고질병은 "다 됐습니다" 가 검증 없이 선언되는 것이다. cladding에서 feature의
status: done은 쓰는 값이 아니라 얻는 값이다.
한계도 그대로 공개한다: 즉시 차단이 못 보는 우회 경로가 존재하며, 그 경우는 사후 검증(관문·어긋남 검사)이 잡는다. 즉시 차단이 1차 방어선, 사후 검증이 2차 방어선이고 어느 쪽도 단독 보증이 아니다.
같은 상황에서 일반 AI 코딩 환경과 cladding 환경의 동작 차이.
| 상황 | 일반 AI 코딩 | cladding |
|---|---|---|
| 코드가 spec과 어긋날 때 | 리뷰에서 발견하면 수정 | 편집 직후 자동 감지(알림) · 어긋난 채로는 "완료"가 통과 못 함 |
| AI가 "다 됐다"고 할 때 | 말을 믿는 수밖에 | 게이트 GREEN일 때만 done 획득 |
| 세션을 실패 상태로 끝낼 때 | 그대로 종료, 다음에 잊힘 | 종료를 한 번 막고 수리 카드 인계 |
| 두 명이 동시에 feature 추가 | merge conflict | hash-8 ID · 파일 분리 → 충돌 0 |
| AI가 짠 코드를 누가 검증? | 작성한 AI가 자기 검증 (위험) | 구현을 못 보는 채점자 + 기계 관문 |
| AI 도구를 바꿀 때 | 도구마다 재구성 | 1 spec → 4 host 자동 연결 |
Spec → Code → Tests가 한 cycle로 순환한다 — spec이 왜를 기록하고, 게이트가 검증하고, detector가 어긋남을 차단한다.
spec이 왜(무엇을 왜 만드는지)를 기록한다. 4-tier 단일 진실 출처 — 의도가 위, 구현물이 아래.
| Tier | 역할 | 수정 권한 | 권위 |
|---|---|---|---|
| A — Spec | 의도 (무엇을 만들까) | 사람이 정의 | 봉인 · LLM 수정 금지 |
| B — Design | 설계 (어떻게 만들까) | 사람이 자유 편집 | A와 일치 검증 |
| C — Derived | 구현물 (코드 · 테스트) + attestation (검증 서명) | LLM · 사람 | 코드 보고 자동 재생성 |
| D — Audit | 감사 기록 (무엇이 일어났나) | append-only | 수정 불가 |
A가 아래 모든 tier보다 우선 — spec(A)과 코드(C)가 다르면 틀린 쪽은 코드다. 의도(A)가 흔들리면 모든 게 흔들리므로 LLM이 못 건드리게 봉인한다.
샤딩 · multi-dev 안전 — spec/features/<slug>-<hash>.yaml처럼 feature마다 별도 파일 + 8자리 hash ID (예: F-d86375d8). 두 명이 동시에 새 feature를 만들어도 다른 파일·다른 ID라 merge conflict 0. 자세히는 Hash-based feature IDs.
"완료"로 인정받으려면 strict 게이트(15단계 중 결정적 9단계)를 전부 통과해야 하고, E2E·증거까지 포함한 전체 15단계는 CI가 돌린다. 같은 검사 엔진을 시점별 묶음으로 건다 — commit 때 빠른 3단계(git hook 설치 시), push·완료 시점에 9단계, CI에서 15단계 전부. 깊이가 다를 뿐 검사 로직은 동일하다.
| Stage | 무엇을 검사하나 |
|---|---|
| 1.1 Type · 1.2 Lint | 타입 오류 · 코드 스타일 |
| 1.3 Drift | 36 detector의 spec ↔ 코드 어긋남 |
| 1.4 Commit · 1.5 Arch · 1.6 Secret | 작업트리 clean · architecture invariant · API 키 노출 |
| 2.1 Unit · 2.2 Coverage | 단위 테스트 통과 · coverage 하락 차단 |
| 2.3 Spec conformance · 2.4 Deliverable smoke | 구현을 못 본 채점자의 테스트 통과 · 선언된 실행물이 실제로 도는지 ("테스트는 통과인데 결과물은 안 도는" 빈 초록 차단) |
| 3.1 Smoke · 3.2 Perf · 3.3 Visual | e2e 핵심 동작 · 성능 예산 · UI 시각 회귀 |
| 4.1 Audit · 4.2 UAT | 모든 AC(수용 기준)에 증거 1건 이상 · 모든 done feature에 증거 1건 이상 |
spec · code · test 사이 모든 방향의 어긋남을 자동 검출한다. 전체 카탈로그: detector catalog.
| 방향 | 무엇을 잡나 | 수 | 대표 detector |
|---|---|---|---|
| spec ↔ code | spec에 있는데 코드에 없거나, 코드가 spec을 벗어남 | 10 | MISSING_IMPLEMENTATION, AC_DRIFT, DELIVERABLE_INTEGRITY |
| code ↔ test | 코드는 있는데 테스트 없음 · 커버리지 하락 · 시크릿 | 6 | MISSING_TESTS, COVERAGE_DROP, HARDCODED_SECRET |
| spec ↔ test | spec의 AC가 테스트로 검증 안 됨 · 상태 거짓 | 5 | UNTESTED_AC, STATUS_DRIFT, SPEC_CONFORMANCE |
| spec 위생 | spec 자체의 무결성 (ID 충돌 · 순환 의존) | 8 | ID_COLLISION, SLUG_CONFLICT, DEPENDENCY_CYCLE |
| 환경 무결성 | 빌드 환경 · 메타 파일 | 3 | HARNESS_INTEGRITY, META_INTEGRITY |
| 검증 신선도 | 검증 서명 이후 코드가 바뀌었는지 | 1 | STALE_ATTESTATION (0.6.0 신규) |
| 거버넌스 · 문서 | 정책 위반 · 문서 표류 | 3 | ABSENCE_OF_GOVERNANCE, PROJECT_CONTEXT_DRIFT |
정의 → 동기화 → 구현 → 획득. 모든 검사를 통과해야 "완료"를 얻는다.
만드는 에이전트와 검증하는 에이전트가 분리돼 있어 어떤 에이전트도 자기 작업을 스스로 승인하지 못한다. 0.6.0의 blind-author는 한 발 더 나간다 — 테스트를 쓰는 에이전트에게 구현을 읽을 도구 자체가 없다(Read/Grep 미부여). "구현 안 보고 썼다"가 약속이 아니라 구조적 사실이 된다. 이 분리는 규제·감사(EU AI Act · SOX) 기준에 그대로 매핑된다.
기존 세 카테고리의 결합부에 cladding이 있다.
cladding의 차별점은 결합 — 위 카테고리의 핵심을 하나의 검증 루프로 묶는 것.
두 단계 — 인프라 설치 → 프로젝트 spec 생성.
npm install -g cladding # cladding CLI 설치
cd <project> # 프로젝트로 이동
clad setup # AI 도구 자동 연결 (Claude / Codex / Gemini / Cursor)
clad setup 한 번이면 설치된 AI 도구들을 자동 감지해 전부 연결한다 — 도구별 설정을 따로 할 필요가 없다.
clad setup이 연결하는 위치 (4개 host · 5개 연결 지점)| 호스트 (감지 시) | wire 위치 | 자동 활성화 |
|---|---|---|
Claude Code (~/.claude/) | ~/.claude/plugins/cladding | claude plugin marketplace add + install |
Codex CLI skills (~/.agents/) | ~/.agents/skills/cladding-* | (Codex 재시작 시 자동) |
Codex CLI MCP 서버 (~/.codex/) | ~/.codex/config.toml의 [mcp_servers.cladding] | (TOML entry 자체) |
Gemini CLI (~/.gemini/) | ~/.gemini/extensions/cladding | gemini extensions link |
Cursor (~/.cursor/) | ~/.cursor/mcp.json의 mcpServers.cladding | (JSON entry 자체) |
clad setup은 claude / gemini binary가 PATH에 있을 때 각 host의 활성화 명령을 자동 호출. 업그레이드 후나 새 AI 도구 설치 후 다시 실행해도 안전하다.
검증 수준(정직 고지): Claude Code는 실사용 캠페인으로 전 기능 검증됨(실시간 개입 포함). Codex · Gemini CLI는 배선 자동화 + 기본 동작 확인. Cursor는 연결은 자동이지만 실사용 검증이 아직이다 — 검증되는 대로 갱신.
MCP 서버에 대하여. 4 host 모두 cladding을 MCP 서버로 wire한다 — wire 위치만 다르다. MCP는 사용자가 직접 호출하는 것이 아니다 —/mcp슬래시도, 수동 연결 단계도 없다. 각 host의 AI가 자연어 요청에 응답해 cladding의 기능을 알아서 호출하며, 사용자는/cladding:init한 번과 일반 대화만 입력한다.
프로젝트 디렉토리에서, AI 도구 안에서 한 번 호출:
[AI 도구 안] /cladding:init "B2B 결제 SaaS"
프로젝트의 spec.yaml과 관련 문서가 만들어진다 — 프로젝트당 한 번.
강제력을 높이려면: clad init --with-hook(pre-commit + pre-push git hook 설치) · clad init --with-ci(CI 게이트 스캐폴드 — 진짜 강제는 CI에서).
| 시작 상황 | 명령 | 무엇이 일어나는가 |
|---|---|---|
| 아이디어만 있을 때 | /cladding:init "B2B 결제 SaaS 만들거야" | LLM이 도메인 분석 → spec · 문서 · 정책 자동 생성 + 후속 질문 2–3개 |
| 기획 문서가 있을 때 | /cladding:init docs/plan.md | 파일 경로 인식 → 내용을 자동 로드해 intent로 사용 |
| 기존 프로젝트 도입 | /cladding:init "이 프로젝트에 cladding 적용해줘" | 기존 코드 자동 스캔 → 관찰한 패턴 + intent 결합 |
한 번 init하면 그걸로 끝 — 그 뒤론 평소처럼 개발하면 된다. cladding이 배경에서 전·후 루프를 돌리니, 따로 외울 명령은 없다.
npm update -g cladding # 1. 새 버전 설치
cd <your project> # 2. 프로젝트마다 한 번씩
clad update # 3. 새 버전에 맞게 정리
당신이 쓴 코드·spec.yaml·문서는 그대로 두니 안전하고, 새 버전이 더 깐깐해 짚을 게 있으면 알려만 준다 (막거나 고치지 않음).
|
version
v0.6.0
2026-06
|
준수 등급
L4
|
tests
1384/1384
all pass
|
gate
15 단계
36 detectors
|
features
171
170 done · 자기 스펙
|
134 test files · coverage는 COVERAGE_DROP detector가 하락 차단 · 설치는 npm 단일 경로(npm install -g cladding)
Ironclad 1.0까지의 길 — 1.0은 독립적인 두 개의 구현이 L4 검증 셋을 통과해야 잠긴다 (GOVERNANCE § 1). cladding이 첫 번째.
MIT. LICENSE · 관련: Ironclad (구현 대상 표준) · harness-boot (seed).