Comad World 가이드

Extensions — 9 hooks + 5 skills

코마드월드(~/.claude/) 위에 얹는 자가진화·안전·증명 레이어. Claude Code OAuth 사용자를 위한 로컬 전용 확장, 외부 서비스 의존성 없음. 복사 기반 설치, Python stdlib + bash 만 사용.

Python 3 bash 9 hooks 5 skills zero deps

설치

한 명령으로 hooks/skills/config 가 ~/.claude/ 에 복사됩니다. 기존 파일은 .bak-<UTC> 백업 후 덮어쓰기. 재실행 안전.

# Clone + install
git clone https://github.com/kinkos1234/comad-world-extensions \
  ~/Programmer/01-comad/comad-world-extensions
cd ~/Programmer/01-comad/comad-world-extensions
./install.sh

# 설치 후 두 가지 수동 작업:
# 1. ~/.claude/settings.json 의 hooks 블록에 9개 훅 등록
#    (install.sh 종료 시 스니펫 출력)
# 2. ~/.claude/CLAUDE.md 에 T6 섹션 추가
전제 — comad-world 가 먼저 설치되어 있어야 합니다 (~/.claude/ 디렉터리 구조 가정). comad-world 가 없어도 hooks/skills 자체는 동작하지만 brain/ear 와의 연동 시나리오는 제한됩니다.

훅 9종

pre-tool-use 4개 + Stop 5개. 모두 silent (exit 0 + 로그); 환경변수 COMAD_*_BLOCK=1 로 exit 2 승격 가능.

pre-tool-use (4종)

역할 트리거 승인 플래그
destroy-gateApproval-Gated Destructionrm -rf /, rm -rf ~/..., git push --force, DROP, truncateapprove-destroy[.<hash>]
no-env-commit.env/credentials git add 차단.env, credentials.json, *.pem stagingapprove-env-commit[.<hash>]
qa-gate-before-push.qa-evidence.json 있으면 verdict=PASS 강제git pushapprove-push-qa-skip[.<hash>]
usage-gateOAuth 5h/7d 쿼터 방어 (현재 dormant)배경 Task 호출approve-usage-once

Stop (5종)

역할 로그
t6-capture세션 종료 시 현재 repo 의 최근 fix:/feat:/bugfix: 커밋 포착.comad/pending/*.json
claim-done-gate"모두 통과 / 92/92 PASS" 류 주장 + Bash 검증 없음 감지.comad/pending/claim-done.jsonl
premature-completion-detector"수렴 달성" 조기 선언 감지.comad/pending/premature-completion.jsonl
numeric-claim-gate"완벽 / production-ready / 100%" 절대 주장 vs 실제 evidence 대조.comad/pending/numeric-claim.jsonl
inventory-gatecoverage 주장 vs inventory cross-check.comad/pending/inventory-gate.jsonl

스킬 5종

스킬 목적 핵심 바이너리
comad-learnT6 pending JSON → feedback memory 승격 + validator 2종validate-pending.py, validate-feedback.py
comad-memory~/.claude/projects/*/memory/*.md 의 SQLite FTS5 인덱스 + 검색sync.py, search.py, trace.py, refresh.py
comad-qa-evidence.qa-evidence.json 생성·검증 (L0~L5 QA levels)init-qa-evidence.py, validate-qa-evidence.py
comad-second-opinion.second-opinion.md 생성 가이드 (codex CLI → subagent → self-adversarial 3-tier fallback)validate-second-opinion.py
comad-parallelCodex CLI 병렬 외주 (Claude=PM, Codex×N=구현) + 5종 comad 통합 게이트parallel.sh, parallel-job.js (1500+ LOC)

comad-parallel 심화 — 5종 통합 게이트

gptaku-plugins/pumasi v1.7.2 를 포팅 후 comad 시스템에 맞게 5종 게이트 신설. 모두 opt-in (env 로 활성화) 또는 default-on (handoff). 한 번의 parallel.sh run-all 로 results → qa-gate → second-opinion-gate → destroy-check → handoff → ear-notify 의 6-단계 파이프라인 자동 실행.

명령 기능 환경변수 산출물
parallel.sh handoff 7-section 핸드오프 doc (Summary / Key Decisions / Traps / Working Agreements / Relevant Files / Open Work / Prompt for New Chat). Summary/Files/Open Work 자동 채움. COMAD_AUTO_HANDOFF=0 으로 비활성 .comad/sessions/<ts>-parallel-<jobid>.md
parallel.sh qa-gate done task cwd 의 .qa-evidence.json + verdict=PASS 검증. validate-qa-evidence.py 우선, jq fallback. COMAD_QA_EVIDENCE=1 members/<task>/qa-evidence.json
parallel.sh second-opinion-gate .second-opinion.md frontmatter verdict (APPROVED/REQUEST_CHANGES/BLOCKS) 검증. 자동 실행 X — verify only. COMAD_SECOND_OPINION=1 members/<task>/second-opinion.json
parallel.sh destroy-check Worker output 에서 13종 destructive 패턴 grep (rm -rf /|~|$HOME, git push --force, DROP DATABASE, mkfs.*, fork bomb 등). Codex 가 별도 프로세스라 사후 검사. COMAD_DESTROY_CHECK=1 members/<task>/destroy-check.json
(ear-notify, internal) cmdRunAll 끝에 Discord webhook POST. 한 줄 요약 (job id + done/failed). 실패 silent. COMAD_EAR_NOTIFY=1 + DISCORD_WEBHOOK_URL Discord 메시지

실행 흐름

# 한 번의 호출로 6단계 파이프라인 (default + 모든 게이트 활성화)
COMAD_QA_EVIDENCE=1 \
COMAD_SECOND_OPINION=1 \
COMAD_DESTROY_CHECK=1 \
COMAD_EAR_NOTIFY=1 DISCORD_WEBHOOK_URL=... \
parallel.sh run-all "프로젝트 컨텍스트"

# 흐름:
# 1. start    → Codex worker N개 spawn
# 2. wait     → 모두 종료까지 대기
# 3. results  → 각 worker output.txt 출력
# 4. qa-gate  → .qa-evidence.json verdict 검증     (env 활성 시)
# 5. second-opinion-gate → .second-opinion.md verdict (env 활성 시)
# 6. destroy-check → 13 패턴 사후 스캔             (env 활성 시)
# 7. handoff  → 7섹션 doc 생성, 위 결과 모두 반영  (default ON)
# 8. ear-notify → Discord 한 줄 요약 POST          (env 활성 시)
# 9. clean    → job dir 삭제
handoff doc 의 인지적 섹션 — Key Decisions / Traps / Working Agreements 는 TODO(claude) stub 으로 남겨집니다. Claude 가 후속 세션에서 수동으로 채워야 함. Summary / Relevant Files / Open Work 는 worker report.json 에서 자동 채움.

T6 자가진화 루프

"실수 → 자동 포착 → 분석 → 기억 → 반복 회피" 의 4-step 루프. 외부 서비스 없이 동작.

  1. Stop hook (자동) — 매 Claude 세션 종료 시 ~/.claude/hooks/stop/t6-capture.sh 가 현재 git repo 의 최근 fix:/feat:/bugfix: 커밋을 ~/.claude/.comad/pending/<hash>.json 에 덤프. 사용자 개입 없음.
  2. 분석 (사용자 호출)/comad-learn 스킬이 pending JSON 들을 읽어 반복 패턴 추출. 판정 기준 통과 시 memory/feedback_<topic>.md 로 승격 (append-only).
  3. HARD 훅 후보 (2회+ 반복) — 같은 topic 이 2회 이상 관찰되면 해당 메모리 파일에 "HARD 훅 후보" 섹션 추가 + 사용자 승인 요청. 승인 시 destroy-gate.sh 패턴 리스트에 추가.
  4. 처리 완료 — 처리한 pending 은 _processed/, 거부는 _rejected/ 로 이동 (원본 삭제 금지).
parallel 과의 연계parallel worker 가 산출 변경을 fix:/feat: prefix 로 git commit 하면, 다음 Claude 세션 종료에서 t6-capture 가 자동 포착 → /comad-learn 으로 학습 가능. Worker instruction 에 "When done, create a git commit with prefix fix: or feat:" 명시 권장.

레포 / 라이선스

GitHub: kinkos1234/comad-world-extensions · 라이선스: MIT · 외부 서비스 의존성 0 (Python stdlib + bash 만 사용)

자매 레포comad-world (8 핵심 모듈) + comad-studio (5 시각/미디어 생성) 와 함께 한 시스템을 이룹니다. 설치 순서 권장: world → extensions → studio.