실장비·하드웨어를 제어하는 프로젝트에서 안전 게이트를 운영할 때 사용한다. 게이트 항목·등급·상태, SAFETY-STUB/VIRTUAL-BYPASS 마커 문법, 배포 기록 형식, 검증 수준 3단계를 정한다. 설정 modules.safetyGate 가 true 일 때만 적용된다.
Scanned 10/1/2026
npx -y skills add mongdang/girok --skill safety-gate --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Safety Gate?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mongdang-safety-gate)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: safety-gate
description: 실장비·하드웨어를 제어하는 프로젝트에서 안전 게이트를 운영할 때 사용한다. 게이트 항목·등급·상태, SAFETY-STUB/VIRTUAL-BYPASS 마커 문법, 배포 기록 형식, 검증 수준 3단계를 정한다. 설정 modules.safetyGate 가 true 일 때만 적용된다.
---
# 안전 게이트 운영법
> [!CAUTION]
> 이 스킬은 **운영법**만 담는다. 게이트 항목·확인자·배포 기록이라는 **데이터는 저장소의
> `docs/SAFETY_GATE.md` 에 있고, 그것이 그 프로젝트의 유일한 안전망이다.**
>
> 이 스킬도, 어떤 훅도, 안전 판단을 대신하지 않는다. 훅은 에이전트가 실행하는 경로만
> 막을 수 있다 - 사람이 HMI·IDE·장비 콘솔에서 직접 하는 동작은 아무것도 막지 못한다.
사내 검증이 코드(가상모드)까지만 가능하고 그다음이 바로 실장비인 프로젝트에서, 정위치
오판·인터락 누락·잘못된 장비 제어는 곧 충돌·사고다. 아래 규칙에 예외를 두지 않는다.
## 1. 실장비 게이트
`docs/SAFETY_GATE.md` 의 **OPEN 항목이 남아 있는 동안 실장비에서 모션 명령(원점복귀·이동·
자동 테스트)을 실행하거나 실행을 안내하지 않는다.**
> [!CAUTION]
> **게이트 항목은 사람 확인자만 닫을 수 있다.** 에이전트는 확인자 칸을 채우지 않는다.
> 실장비 검증을 대신할 수 없기 때문이다. 이 규칙에는 어떤 예외도 없다.
## 2. 검증 수준 3단계
```
코드대조 < 가상모드 < 실장비
```
현황판 상태 요약의 COMPLETED 배지는 **"코드 완성"만** 의미한다. 가상모드 통과를 실장비
검증으로 기록하지 않는다 - 검증 수준 열을 따로 채운다.
## 3. 게이트 항목 표
| 열 | 내용 |
|---|---|
| # | 항목 번호. 다른 문서는 이 번호로 인용한다 |
| 등급 | BLOCKER / MOTION / LATER |
| 항목 | 확인해야 하는 것 |
| 확인 방법 | 어떻게 확인하는지 |
| 확인자 | **사람 담당자 실명.** 에이전트가 채우지 않는다 |
| 날짜 | 확인 날짜 |
| 상태 | OPEN / PARTIAL / CLOSED |
**상태**
| 배지 | 뜻 | hex |
|---|---|---|
| OPEN | 미확인 | `#C4553B` |
| PARTIAL | 코드 일부 구현·실측 전 | `#E0A458` |
| CLOSED | 확인 완료(확인자·날짜 필수) | `#3F7D58` |
**등급 - 위험의 크기가 아니라 순서다.** 축은 "무엇을 하기 전에 닫아야 하는가".
| 배지 | 뜻 | hex |
|---|---|---|
| BLOCKER | 모션(원점복귀·Jog 포함) 자체를 금지하는 조건 - 남아 있으면 **아무 축도 움직이지 않는다** | `#C4553B` |
| MOTION | 저속 모션을 시작해야만 확인되는 것 - BLOCKER 를 닫은 뒤 저속 운전에서 확인 | `#E0A458` |
| LATER | 측정 계통·종료·표시 - 모션 안전과 무관하나 **측정 전까지는 닫아야 함** | `#6B7280` |
항목을 닫을 때: 상태 배지를 CLOSED 로 바꾸고 확인자·날짜를 채운다. 새 위험이 발견되면
행을 추가하고 현황판 활성 위험 표에서 **항목 번호로 인용**한다 - 내용을 두 곳에 재서술하지
않는다.
## 4. 코드 마커 규칙
grep 한 번으로 전수 탐색되는 게 목적이라 **표기를 변형하지 않는다**(대소문자·하이픈 고정).
| 마커 | 의미 | 규칙 |
|---|---|---|
| `SAFETY-STUB` | 안전 판정(정위치·인터락·리밋 등)을 임시로 통과시키는 자리 | 부착과 **같은 커밋에서** 게이트 표에 등재. 원칙은 fail-safe(차단=false) 방향이고, 부득이 통과(true)로 둘 때만 이 마커를 쓴다 |
| `VIRTUAL-BYPASS` | 가상모드 전용 우회 분기 | 부착 시 게이트의 마커 스캔 항목 대상. 실장비 배포 전 전수 검토 |
**안전 판정 스텁은 fail-safe 방향이 기본이다.** 정위치·인터락·리밋 판정의 임시 구현은
차단(false) 쪽으로 둔다.
**알람·인터락·비상정지 경로를 주석 처리하거나 조건 우회로 무력화한 채 커밋하지 않는다.**
부득이하면 마커 부착 + 현황판 활성 위험 표 등재가 조건이다.
## 5. 배포 기록
실장비에 배포할 때마다 `SAFETY_GATE.md` 의 배포 기록 표에 한 행을 추가한다 - **"그때 실장비에
돌던 코드가 뭐였는지" 를 되짚을 유일한 수단**이다.
| 열 | 내용 |
|---|---|
| 배포 일시 | |
| 브랜치 | |
| 커밋 해시 | 되짚기의 핵심 |
| 게이트 상태 | OPEN 잔여 |
| 비고 | |
## 6. 병행 작업 중의 예외
병행 기간에도 **이 문서만은 개인 폴더가 아닌 메인에 즉시 반영한다.** 수정 즉시 커밋하고
상대방에게 공유한다 - 안전 정보는 병합을 기다리지 않는다.
같은 이유로 안전 파일 변경이 섞인 병합은 **자동 병합 대상에서 제외**된다. 사람이 diff 를
리뷰한다.
## 7. 아카이브 이관 시
서사를 아카이브로 옮길 때 그 안의 미해결 확인 항목은 전부 현황판 또는 이 게이트로 승격한
뒤 동결한다. 동결 문서에만 남은 확인 항목은 영영 갱신되지 않는다 - 실제 누락 사례가 이
게이트 도입의 근거다.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!