GitHub 트렌딩 딥다이브 · 2026-06-23

reverse-skill 딥다이브
— AI 코딩 에이전트를 위한 "보안 스킬 라우터" 설계 해부

Claude Code·Cursor·Cline 같은 코딩 AI가 보안·역공학 작업을 만났을 때, "무슨 도구를 어떤 순서로 써야 하는지"를 스스로 판단하게 만드는 스킬 라우팅 팩이다. 핵심은 세 가지 — ① 작업을 분류해 알맞은 스킬로 보내는 라우터, ② 필요한 도구를 그때그때 깔아주는 자가부팅(bootstrap) 매니페스트, ③ 작업이 끝나면 경험을 글로 남겨 스스로 진화하는 경험 라이브러리(field-journal). 코드가 아니라 마크다운 규약(.md 매니페스트)으로 짜인, "에이전트 운영체제"에 가까운 구조다. (저장소: zhaoxuya520/reverse-skill · 22개 스킬 + 41개 CTF 서브스킬 · 다국어 README(중/영) · MIT 라이선스 · TrendShift #13)

목차
  1. 프로젝트 한줄 요약
  2. 왜 주목받는가
  3. 기술 스택 전체 지도
  4. 아키텍처 심화 분석 (라우팅 + 자가부팅 + 진화)
  5. 디렉토리 구조 해부
  6. 학습 포인트 (기술별)
  7. 필요 환경 / 전제
  8. 직접 해볼 수 있는 실습 과제
  9. 관련 기술 심화 학습 로드맵
  10. 핵심 키워드 사전
  11. 참고 링크

1프로젝트 한줄 요약

"코딩 AI에게 보안 작업용 두뇌(라우터) + 손발(도구) + 기억(경험)을 한 번에 달아준다."

한 줄로

reverse-skill은 AI 코딩 에이전트가 역공학·보안 작업을 "추측 대신 정해진 절차"로 처리하게 만드는, 마크다운으로 짜인 스킬 라우팅 팩이다.

일반적인 코딩 AI(Claude Code, Cursor 등)에게 "이 APK 뜯어줘"라고 하면, 어떤 도구(jadx? apktool? Frida?)를 쓸지 헤매거나, 설명만 길게 늘어놓고 정작 실행은 안 하는 경우가 많다. reverse-skill은 이 혼란을 하나의 실행 사슬로 바꾼다 — 작업이 들어오면 ① 라우터가 유형을 분류해 알맞은 스킬 폴더로 보내고, ② 필요한 도구가 없으면 자동으로 설치하고, ③ 끝나면 겪은 시행착오를 일지로 남겨 다음 번에 재사용한다.

가장 먼저 짚을 점 — 이건 실행 가능한 프로그램이 아니라 "지시문 묶음"이다. 거의 모든 핵심 파일이 마크다운(.md)으로, AI가 읽고 그대로 행동하도록 설계됐다. SKILL.md(총괄 입구), routing.md(분류 표), RULES.md(행동 규칙) 같은 파일이 코드가 아니라 "프롬프트/규약"으로 에이전트의 행동을 프로그래밍한다. 여기에 PowerShell·Bash 스크립트(도구 설치·검사용)와 JSON 매니페스트가 곁들여진다.

용어
스킬 (Skill) / 스킬 라우팅 (skill routing)
'스킬'은 특정 작업을 처리하는 방법론 묶음 폴더다. 이 레포의 각 스킬은 SKILL.md 한 장으로 "언제 쓰는지·어떤 도구 사슬을 쓰는지·작업 흐름"을 적어둔다. '스킬 라우팅'은 들어온 작업을 보고 22개 스킬 중 알맞은 하나(또는 조합)로 길을 내주는 분배 과정. 사람이 분류하는 게 아니라 AI가 routing.md 표를 읽고 스스로 고른다.
용어
에이전트 스킬 / Claude Agent Skills 포맷
최근 코딩 AI 생태계는 "스킬"을 폴더 + SKILL.md 설명서 형태로 표준화하는 흐름(agentskills.io 등)이 있다. reverse-skill은 이 패턴을 보안 도메인에 적용한 대규모 사례로, 한 클라이언트에 묶이지 않고 Claude Code·Codex CLI·Cursor·Cline·Windsurf·Kiro 등 여러 AI 클라이언트가 공유할 수 있게 만들었다.

만든 사람은 zhaoxuya520이고, 저장소에는 중국어(README_zh.md)·영어(README.md) 안내가 함께 있다. 흥미로운 건 README 자체가 사람용이 아니라 "AI가 읽고 자기 자신을 설정하는 부팅 문서"로 쓰였다는 점이다 — 문서 첫머리에 "사람은 OVERVIEW.md부터 보고, AI 에이전트는 곧장 0번 섹션의 부팅 절차를 실행하라"고 명시한다.

2왜 주목받는가

"단일 도구 설치기가 아니라, 에이전트의 작업 흐름 자체를 설계한 '운영체제'다."

2025~2026년은 "코딩 에이전트에 스킬을 입히는" 시대다. Claude Code의 플러그인·스킬, Cursor Rules, Cline 커스텀 인스트럭션 등으로 AI의 행동을 도메인에 맞게 조형하는 게 유행이다. 그런데 대부분은 "하나의 도구를 잘 쓰게 하는" 수준에 그친다. reverse-skill이 눈에 띄는 이유는 한 도메인(보안·역공학) 전체를 분류 → 도구 준비 → 실행 → 회고·진화라는 닫힌 루프로 묶었기 때문이다.

기존 방식(맨몸 코딩 AI)의 함정
"도구 선택을 헤매고, 설명만 하고, 같은 실수를 반복한다"

보안 작업은 대상(APK·ELF·JS·펌웨어·웹)마다 완전히 다른 도구·절차(playbook)가 필요하다. 맨몸 AI는 jadx를 쓸지 IDA를 쓸지 헤매고, 도구가 안 깔려 있으면 막히고, 어렵사리 푼 문제도 다음 세션에선 기억하지 못해 처음부터 다시 헤맨다. 게다가 "설명은 길게 하는데 실제 실행 단계로 못 들어가는" 무한 확인 루프에 빠지기 일쑤다.

reverse-skill의 해결
라우터 + 자가부팅 + 경험 라이브러리 = 닫힌 실행 루프

라우터가 "대상 유형 + 사용자 의도 + 도구 체인" 세 축으로 작업을 분류해 알맞은 스킬로 보낸다. ② 도구가 없으면 bootstrap 매니페스트를 읽어 그때그때 설치(자가부팅)한다. ③ 작업이 끝나면 field-journal에 시행착오를 적고, 같은 유형이 또 오면 그 일지를 먼저 읽어 재사용한다. "추측을 줄이고 구조를 늘리는" 게 한 문장 요지다.

특히 "멀티 클라이언트 이식성"이 차별점이다. RULES.md 단 한 파일이 "내가 어떤 AI 클라이언트인지 감지해서, 그 클라이언트의 전역 설정 위치에 라우팅 규칙을 써넣어라"는 지시를 담는다. 덕분에 한 파일만 유지하면 Claude Code·Cursor·Cline·Windsurf·Kiro·Codex가 모두 같은 라우팅을 쓴다. Kiro는 한술 더 떠 .kiro/steering/reverse-routing.md가 자동 로드되어, 특정 키워드(역공학·APK·CTF·渗透 등 수백 개)가 보이면 라우팅을 강제 발동한다.

비유

맨몸 코딩 AI = 공구함만 던져준 신입 — 망치를 쓸지 드라이버를 쓸지 매번 묻고, 어제 고친 걸 오늘 또 헤맨다.
reverse-skill = 분류 데스크 + 자동 보급 창고 + 작업 일지를 갖춘 정비소 — 차가 들어오면 접수대가 정비 라인을 지정하고, 없는 부품은 자동 발주되며, 정비가 끝나면 카드에 노하우를 적어 다음 정비공이 곧장 써먹는다.

비슷한 것들과 무엇이 다른가

구분단일 스킬/룰
(Cursor Rules 등)
MCP 서버 1개
(도구 한 개 노출)
reverse-skill
범위좁은 한 작업도구 하나 연결보안 도메인 전체(22+41 스킬)
도구 준비수동해당 도구만자가부팅 매니페스트(18종)
경험 축적없음없음field-journal 자동 진화
클라이언트대개 1종MCP 지원 전부6종+ (한 RULES.md로)
형식룰 파일실행 서버.md 규약 + 스크립트 + 매니페스트
라이선스다양다양MIT

물론 한계도 분명하다. 이 팩이 약속하는 건 "코드를 실행하는 엔진"이 아니라 "에이전트가 따라야 할 규약과 도구 지도"다. 실제 분석을 해내는 건 결국 외부 도구(jadx·IDA·radare2 등)와 MCP 서버이고, reverse-skill은 그 위를 흐르는 방법론 + 라우팅 + 회고 레이어다. 또한 보안 도구 특성상 합법적·권한 받은 환경(학습·CTF·인가된 테스트)에서만 써야 하며, 레포 자체도 라이선스·면책 조항에서 이를 강조한다. (이 글은 공격 기법이 아니라 에이전트 아키텍처를 설명하는 데 집중한다.)

3기술 스택 전체 지도

"코드"보다 "규약+스크립트+매니페스트". 세 층 — 지시 레이어 / 자동화 레이어 / 연동 레이어.

reverse-skill은 일반적인 "백엔드/프론트엔드/인프라" 프로젝트가 아니다. 산출물의 대부분이 AI가 읽는 문서(.md)이고, 나머지가 그 문서를 거드는 스크립트(.ps1/.sh)·매니페스트(.json)·MCP 브리지다. 그래서 ① 지시 레이어(Instruction) ② 자동화 레이어(Automation) ③ 클라이언트 연동 레이어(Integration) 셋으로 보면 머리에 잘 들어온다.

① 지시 레이어 — AI에게 "어떻게 행동하라"를 적은 .md

이 레포의 진짜 "코드"는 마크다운이다. RFC 2119 키워드(MUST/SHOULD/MAY)까지 동원해 AI의 의무 행동을 규정한다. AI는 이 문서를 프롬프트 컨텍스트로 읽고 그대로 실행한다.

파일역할
RULES.md전역 행동 사슬(0~14단계). "내가 무슨 클라이언트인지 감지 → 전역 설정에 규칙 주입"까지 지시
skills/SKILL.md총괄 입구. 22개 스킬 목록 + "라우팅 실행 계약"(읽고 끝내지 말고 즉시 실행)
skills/routing.md라우팅 매트릭스. "대상 유형 / 사용자 의도"별 분배 표
각 스킬/SKILL.md그 도메인의 도구 사슬·작업 흐름·첫 실행 동작
field-journal/precedent-*.md"이 작업은 인가된 일상 업무다"를 선언해 AI의 과도한 망설임을 줄이는 선례 파일
용어
RFC 2119 (MUST / SHOULD / MAY)
기술 표준 문서에서 요구 강도를 정의하는 국제 관례. MUST=반드시, MUST NOT=절대 금지, SHOULD=원칙상 해야(안 하면 사유 설명), MAY=선택. reverse-skill의 SKILL.md는 이 어휘를 빌려, AI가 "권고"가 아니라 "의무"로 절차를 따르게 못 박는다.

② 자동화 레이어 — 도구 설치·검사 스크립트와 매니페스트

지시만으론 도구가 깔리지 않는다. 그래서 실제 OS에서 도는 스크립트가 붙는다. 핵심은 bootstrap-manifest.json"어떤 도구를 어떤 방식으로 설치할지"를 데이터로 적은 표다. 스크립트는 이 표를 읽어 설치를 수행한다(설정 vs 실행의 분리).

파일/도구역할
scripts/bootstrap-manifest.json18개 도구의 설치 레시피(설치 방식·저장소·검증 명령). 데이터 기반
scripts/bootstrap-reverse.ps1 / .sh매니페스트를 읽어 누락 도구를 설치하는 실행기(Windows/Bash 동등 제공)
scripts/refresh-tool-index.ps1 / .sh현재 머신을 스캔해 tool-index.md/.json 생성(어떤 도구가 있나)
tool-index.md (자동 생성·gitignore)이 머신의 도구 상태(yes/no·경로·버전). 레포에 없고 첫 실행 때 만들어짐
PowerShell / BashWindows가 1순위 경로, Kali·Ubuntu·macOS는 Bash 동등 경로
비유

매니페스트 = 부품 카탈로그, 스크립트 = 창고 직원. 카탈로그(JSON)에는 "이 부품은 GitHub 릴리스 ZIP에서, 저 부품은 pip로, 또 다른 건 winget으로 받는다"가 적혀 있고, 직원(스크립트)은 카탈로그만 보고 그대로 발주·설치한다. 새 도구를 추가할 땐 카탈로그에 한 줄 적으면 직원이 알아서 처리한다.

③ 클라이언트 연동 레이어 — MCP·hooks·steering

마지막으로, 이 규약을 실제 AI 클라이언트에 꽂는 접착제다. 대상 분석을 위한 외부 능력은 MCP(Model Context Protocol) 서버로 연결한다(IDA·BurpSuite·브라우저 분석 등).

연동 수단설명
MCP 서버burp-mcp-full/(Java+Node 브리지), IDA MCP(HTTP), jshookmcp(npx), anything-analyzer(HTTP:23816) 등
Claude Code hooks.claude/ 설정·hook으로 "RE 작업 시 라우팅 먼저 읽기"를 주입
Kiro steering.kiro/steering/reverse-routing.md 자동 로드 → 키워드 감지 시 라우팅 강제
Cursor/Cline/Windsurf각자의 Rules/커스텀 인스트럭션에 세 입구 파일 경로를 주입
GitHub Actionsauto-merge-journal.yml — field-journal 전용 PR만 검증·자동 머지

4아키텍처 심화 분석 — 라우팅·자가부팅·자동진화

심장은 세 개의 톱니바퀴 — '라우터(분류)', '부트스트랩(도구 보급)', 'field-journal(회고·진화)'.

reverse-skill의 동작은 하나의 행동 사슬로 요약된다. 작업이 들어오면 AI는 정해진 순서로 문서를 읽어 길을 정하고, 도구를 확인·보충한 뒤 실행하고, 끝나면 경험을 남긴다. 실제 ARCHITECTURE.md의 흐름을 단순화하면 다음과 같다.

┌──────────────────────────────────────────────────────────────────┐ │ 사용자: "이 APK 서명검증 로직 분석해줘" (보안/역공학 작업 발생) │ └───────────────────────────────┬──────────────────────────────────┘ │ 트리거 키워드 매칭 (APK, 逆向, CTF…) ▼ ① 규칙 로드 RULES.md → SKILL.md → routing.md 순서로 읽기 │ (읽고 "이해했다"로 끝내면 안 됨 = 실행 계약) ▼ ② 라우팅 판정 routing.md 3축 매칭: │ 대상유형(APK) + 사용자의도(서명검증) + 도구체인 │ → apk-reverse/SKILL.md 로 분기 │ (미스매치면 새 skill 제안, 억지로 끼워넣지 않음) ▼ ③ 경험 조회 field-journal/_index.md 에서 같은 유형 일지 검색 │ → 있으면 검증된 절차 재사용, 함정 회피 ▼ ④ 도구 확인 tool-index.md 로 jadx/apktool/adb/frida 가용성 확인 │ ├── 없음 ──▶ bootstrap-reverse.ps1 호출 (매니페스트 보고 자동 설치) │ └ 실패 시: 무한 재시도 금지 → 구조화된 수동 안내 출력 ▼ ⑤ 실행 해당 skill 워크플로우 진입 → 실제 도구로 작업 수행 │ (멈춰서 다음 확인만 기다리지 말 것 = 복종성 공학) ▼ ⑥ 산출 docs-generator 로 보고서·다이어그램 생성 (사용자용) ▼ ⑦ 진화 field-journal 에 시행착오·해법·코드 회수 (시스템용) → _index.md 갱신, 필요 시 routing/manifest 도 PR로 업데이트
용어
자가부팅 / 부트스트랩 (bootstrap)
"스스로 시동을 건다"는 뜻. 여기서는 작업에 필요한 도구가 없을 때, AI가 직접 설치 스크립트를 호출해 채워 넣는 동작을 가리킨다. 미리 다 깔아두는 게 아니라 필요할 때(on-demand) 그 능력만 부팅한다. 설치 방식은 bootstrap-manifest.json에 데이터로 적혀 있고, 9가지 설치 유형(아래 표)을 지원한다.

핵심 설계 1 — 3축 라우팅 매트릭스 (분류의 두뇌)

routing.md는 단순한 목록이 아니라 "대상 유형 / 사용자 의도" 두 개의 큰 표다. AI는 들어온 작업을 이 표와 대조해 정확히 한 곳(또는 조합)으로 보낸다. 핵심 규칙은 "먼저 라우팅, 그 다음 실행""안 맞으면 억지로 끼우지 말고 새 스킬을 제안"이다.

대상 유형(일부)라우팅 목적지
APK / Androidapk-reverse/ (핵심이 .so면 ida-reverse/로 재분기)
exe/dll/so/elfida-reverse/ 또는 radare2/
프론트엔드 JSjs-reverse/ (필요 시 jshookmcp CDP/Hook)
펌웨어 / IoTfirmware-pentest/ (OWASP FSTM)
LLM / AI 앱llm-security/ (OWASP LLM + ASI Top 10)
CTF 전 영역CTF-Sandbox-Orchestrator/ 총괄 → 41개 서브스킬로 증거 기반 분기

여기서 영리한 건 "경로 교차(Path Crossing)" 설계다. 한 작업이 여러 스킬에 걸치면(예: APK 분석 중 .so가 나오면 IDA로, PoC를 쓰면 pwn-chain으로) 스킬들이 사슬처럼 이어진다. 모놀리식이 아니라 조립식 스킬 그래프인 셈이다.

핵심 설계 2 — 데이터 기반 자가부팅 (도구 보급)

도구 설치 로직을 코드에 하드코딩하지 않고 bootstrap-manifest.json데이터로 뽑아낸 게 핵심이다. 항목마다 설치 방식(bootstrapKind)·저장소·검증 명령이 적혀 있어, 스크립트는 이 레시피만 보고 동작한다. 새 도구는 코드를 안 고치고 JSON에 한 줄이면 끝(설정과 실행의 분리, OCP).

// bootstrap-manifest.json 한 항목의 예 (요지)
{
  "name": "jadx",
  "bootstrapKind": "github-release-zip",   // 설치 방식
  "repo": "skylot/jadx",                    // 어디서 받나
  "assetRegex": "^jadx-[0-9].*\\.zip$",     // 어떤 파일
  "installDir": "%USERPROFILE%\\Tools\\jadx",
  "canAutoInstall": true,
  "verifyCommand": "jadx"                    // 설치 후 검증
}

현재 매니페스트에는 18개 능력이 정의돼 있고, 설치 방식(bootstrapKind)은 9종으로 다양하다 — 같은 "설치"라도 도구마다 받는 법이 다르기 때문이다.

bootstrapKind의미
github-release-zipGitHub 릴리스 ZIP 받아 압축 해제jadx, radare2
pip-packagepip로 파이썬 패키지 설치frida-tools, ida-pro-mcp
winget-packageWindows 패키지 매니저(Windows 전용 도구)
npm-mcp / npm-globalnpx로 MCP 실행 / 전역 npm 설치jshookmcp 계열
local-http-mcp로컬 HTTP MCP 서버 URL 등록·기동IDA·BurpSuite·anything-analyzer
git-clone / go-install소스 클론 / Go 설치일부 도구

핵심 설계 3 — field-journal (스스로 진화하는 기억)

가장 독특한 부분. 작업이 끝나면 AI는 field-journal/"무슨 작업을, 어떤 사슬로, 어떤 함정을 겪고, 어떻게 풀었는지 + 재사용 가능한 코드"를 정해진 템플릿(_template.md)으로 적는다. 다음에 같은 유형이 오면 _index.md를 먼저 뒤져 검증된 절차를 재사용하고 같은 함정을 피한다. 시간이 갈수록 똑똑해지는 경험 라이브러리다.

구성역할
_template.md회고 작성 틀(시나리오·목표·실행 사슬·함정표·핵심 코드·개선안·재사용 패턴)
_index.md자동 생성 색인(시나리오별 분류). 현재 실제 6건 + 시드 17건
seed-*.md미리 넣어둔 참고 사례(실제 완료로 안 침). "맨바닥 출발" 방지용 사전 지식
precedent-*.md"인가된 일상 작업" 선언 — AI의 과도한 면책·망설임을 줄임
진화의 안전장치
"경험은 자동 머지, 핵심 로직 변경은 사람 리뷰"

진화가 무분별하면 라우팅·매니페스트가 오염될 수 있다. 그래서 .github/workflows/auto-merge-journal.ymlfield-journal의 .md 변경만 화이트리스트로 허용해 검증 후 자동 머지하고, routing.md·bootstrap-manifest.json·SKILL.md 같은 핵심 파일 변경은 반드시 PR + 사람(또는 독립 AI) 리뷰를 거치게 강제한다. "스스로 진화하되 함부로 고치진 않는다"는 균형이다.

마지막으로, 이 모든 걸 받치는 메타 설계가 "복종성 공학(agent-obedience-engineering)"이다. llm-security/에 들어있는 이 문서는 에이전트가 설명만 하다 멈추거나, 단계를 건너뛰거나, 빈 확인만 반복하는 것을 막는 프롬프트 엔지니어링 기법을 담는다. 즉 reverse-skill은 "무엇을 할지(라우팅)"뿐 아니라 "실제로 끝까지 실행하게 만드는 법"까지 설계에 넣었다.

5디렉토리 구조 해부

레포는 '지시 문서 + 22개 스킬 + 41개 CTF 서브스킬 + 자동화 스크립트'의 평면 모노레포다.

최상위는 크게 ① 부팅·규칙 문서(루트의 .md) ② skills/(22개 스킬 + 라우팅 + 경험 라이브러리) ③ CTF-Sandbox-Orchestrator/(41개 경쟁용 서브스킬) ④ burp-mcp-full/(MCP 브리지) ⑤ 플랫폼 문서·워크플로로 나뉜다. 핵심은 skills/ 안의 "입구 3종(SKILL·routing·tool-index) + 도메인 스킬들 + scripts + field-journal" 구성이다.

reverse-skill/ ← 저장소 루트 (마크다운 규약 모노레포) ├── README.md / README_zh.md AI용 부팅 입구 (실행 우선·다국어) ├── OVERVIEW.md / OVERVIEW_zh.md 사람용 개요 (먼저 읽으라고 안내) ├── RULES.md ★ 전역 행동 사슬(0~14단계) + 클라이언트 자동 주입 ├── ARCHITECTURE.md mermaid 다이어그램으로 전체 흐름 도해 ├── PLATFORMS.md 지원 플랫폼 매트릭스 ├── skills/ ★ 메인 스킬 디렉토리 │ ├── SKILL.md 총괄 입구 (22개 스킬 표 + 실행 계약) │ ├── routing.md ★ 라우팅 매트릭스 (대상유형·의도별 분배) │ ├── CONTRIBUTING.md 새 스킬 추가 표준 절차 │ ├── tool-index.md (자동 생성·gitignore) 이 머신의 도구 상태 │ ├── scripts/ ★ 자동화 레이어 │ │ ├── bootstrap-manifest.json 18개 도구 설치 레시피(데이터) │ │ ├── bootstrap-reverse.ps1/.sh 누락 도구 자동 설치 실행기 │ │ └── refresh-tool-index.ps1/.sh 머신 스캔→tool-index 생성 │ ├── field-journal/ ★ 자동 진화 경험 라이브러리 │ │ ├── _template.md 회고 작성 틀 │ │ ├── _index.md 시나리오별 색인 (실제6 + 시드17) │ │ ├── precedent-*.md 인가 선언 선례 파일 │ │ └── seed-*.md / 날짜_*.md 참고 사례 / 실제 기록 │ ├── apk-reverse/ ida-reverse/ radare2/ js-reverse/ │ ├── reverse-engineering/ 범용 방법론(언어·플랫폼·패턴 라이브러리) │ ├── binary-diff/ patch-diff-exploit/ pwn-chain/ │ ├── firmware-pentest/ edr-bypass-re/ pentest-tools/ │ ├── api-security/ supply-chain-security/ mobile-reverse/ │ ├── malware-analysis/ browser-automation/ attack-chain/ │ ├── llm-security/ OWASP LLM/ASI + "복종성 공학" │ ├── diagram-generator/ docs-generator/ 산출(다이어그램·보고서) │ └── (각 스킬은 SKILL.md + references/ + 일부 scripts/) ├── CTF-Sandbox-Orchestrator/ ★ CTF 경쟁용 서브스킬 41개 │ └── competition-*/ 각 SKILL.md + references/ + agents/ ├── burp-mcp-full/ BurpSuite MCP 브리지 (Java + mcp-bridge.js) ├── .kiro/steering/ Kiro 자동 로드 라우팅 규칙 ├── .github/workflows/ auto-merge-journal.yml (경험 PR 자동 머지) └── docs/platforms/ linux.md · macos.md (플랫폼별 배포 가이드)
비유

이 구조는 대형 병원과 같다. 루트의 RULES.md·SKILL.md접수·분류(트리아지) 데스크, routing.md"이 증상은 어느 과로" 분류 매뉴얼, 각 스킬 폴더는 전문 진료과(정형외과=apk-reverse, 영상의학=ida-reverse…), scripts/약제부·의료기기 보급, field-journal/전 의료진이 공유하는 증례 노트다. 환자는 접수 → 분류 → 전문과 → 처치 → 증례 기록의 한 흐름을 탄다.

6학습 포인트 (기술별)

코드 한 줄 없이도, '에이전트를 설계하는 법' 거의 전부가 이 레포에 들어 있다.

① 에이전트 스킬 설계 — SKILL.md 작성법

요즘 코딩 AI 생태계의 핵심 산출물이 "스킬"이다. 이 레포는 22개 스킬을 어떻게 한 장의 SKILL.md로 정의하는지의 거대한 표본이다. "언제 쓰는지(트리거)·도구 사슬·첫 실행 동작·실행 계약"을 어떻게 적는지 패턴이 보인다.

실습 아이디어

skills/apk-reverse/SKILL.mdskills/js-reverse/SKILL.md를 나란히 읽고, 두 스킬의 공통 골격(섹션 구성)을 표로 뽑아 보라. 그 틀로 "내가 만들 새 스킬"의 SKILL.md 초안을 써 보면 감이 온다.

② 라우팅 = 의도 분류 시스템

routing.md는 사실상 "자연어 의도 → 행동"의 매핑 테이블이다. LLM이 분류기로 동작하도록 입력을 어떻게 구조화하는지(대상 유형 / 사용자 의도 / 도구 체인 3축), "미스매치 시 새 스킬 제안" 같은 안전 기본값을 어떻게 두는지 배운다.

실습 아이디어

아무 도메인(예: "데이터 분석 작업")을 골라, reverse-skill의 routing.md 형식을 흉내 내 "대상 유형별 / 사용자 의도별" 2-표 라우팅을 직접 작성해 보라. 분류 누락이 생기는 지점을 찾는 게 핵심.

③ 데이터 기반 자동화 — 매니페스트 + 실행기 분리

bootstrap-manifest.json + bootstrap-reverse.ps1"설정(데이터) ↔ 실행(코드)" 분리의 모범이다. 설치 방식을 코드에 박지 않고 JSON에 빼두니, 새 도구 추가가 "코드 수정"이 아니라 "데이터 한 줄"이 된다. OCP(개방-폐쇄 원칙)의 실전 사례.

실습 아이디어

bootstrap-manifest.json의 항목 하나를 골라 필드(name·bootstrapKind·repo·verifyCommand…)의 의미를 표로 정리하고, "내가 좋아하는 CLI 도구"를 위한 새 매니페스트 항목을 한 줄 써 보라.

④ 자기 진화 시스템 — 메모리 + 안전 머지

field-journal/"AI가 자기 경험을 글로 남겨 다음에 재사용"하는 메모리 루프다. 더 중요한 건 진화의 안전장치 — GitHub Actions가 경험 파일만 자동 머지하고 핵심 로직은 사람 리뷰를 강제한다. "자율성과 통제"의 균형을 코드로 어떻게 구현하는지 배운다.

실습 아이디어

.github/workflows/auto-merge-journal.yml을 읽고, "어떤 파일 변경은 허용되고 어떤 건 차단되는가"의 화이트리스트 규칙을 흐름도로 그려 보라. 자동화에 안전 가드를 다는 사고법이 핵심.

⑤ 멀티 클라이언트 이식성 — 한 규칙, 여러 에이전트

RULES.md 한 파일로 Claude Code·Cursor·Cline·Windsurf·Kiro·Codex를 모두 덮는 설계는, "클라이언트 감지 → 그 클라이언트의 설정 위치에 주입"이라는 영리한 추상화다. 도구별로 파일을 복제하지 않고 단일 진실원(single source)을 유지하는 법을 보여 준다.

⑥ MCP로 외부 능력 붙이기

burp-mcp-full/(Java 도구를 Node 브리지로 MCP화)와 IDA·jshookmcp 연동 예시는 "기존 도구를 AI 에이전트의 손발로 만드는 법"의 실전 카탈로그다. MCP의 세 가지 기동 방식(URL 등록형 HTTP, npx 명령형, 로컬 서버형)을 한 레포에서 비교할 수 있다.

실습 아이디어

README의 mcpServers 예시 JSON을 분석해, "URL 방식 vs command 방식"의 차이를 표로 정리하라. 어떤 도구가 왜 그 방식을 쓰는지 추론해 보면 MCP 연동 감각이 잡힌다.

7필요 환경 / 전제

레포 자체는 가볍다 — 진짜 전제는 'AI 클라이언트 + 합법적 사용 환경'이다.

이 팩 자체는 문서·스크립트·JSON이라 다운로드만으로 끝난다(빌드 불필요). 부담은 컴퓨터 성능이 아니라 ① 이걸 읽고 실행할 AI 클라이언트② 작업에 실제로 필요한 외부 도구(필요할 때 자가부팅), 그리고 무엇보다 합법적·인가된 사용 환경이다.

항목요건비고
AI 클라이언트Claude Code(1순위) · Cursor · Cline · Windsurf · Kiro · Codex CLIRules/시스템 프롬프트·MCP를 지원하는 코딩 AI
OSWindows(주 경로) · Kali · Ubuntu/Debian · macOS플랫폼별 스크립트(.ps1/.sh)·배포 문서 제공
런타임Node.js 22.12+ · Python 3.x · Java/JDKJS/MCP·Frida·APK 도구 실행에 필요(작업별)
외부 도구jadx · apktool · IDA · radare2 · Frida 등미리 다 깔 필요 없음 — 필요 시 bootstrap이 설치
MCP 서버(선택)IDA MCP · BurpSuite MCP · jshookmcp · anything-analyzer대상 분석용 외부 능력. 클라이언트에 등록 필요
사용 권한합법·인가된 환경 필수학습 · CTF · 인가받은 테스트에 한정(라이선스 명시)
초보자가 놓치는 함정
"tool-index가 yes여도, 클라이언트에 MCP를 안 붙이면 AI는 못 쓴다"

레포의 FAQ가 콕 집는 함정 — tool-index.mdyes"이 머신에 실행 파일/런타임이 있다"는 뜻일 뿐, AI 클라이언트가 그 도구(MCP 서버)를 등록·활성화했다는 보장이 아니다. 예: jshookmcp = yes는 단지 node/npx가 있다는 의미다. 또 tool-index.md다른 머신에서 스캔한 낡은 값일 수 있으니, 새 컴퓨터에서는 반드시 refresh-tool-index를 먼저 돌려야 한다. 그리고 이 모든 도구는 반드시 인가된 환경에서만 사용해야 한다.

8직접 해볼 수 있는 실습 과제

"구조 읽기 → 라우팅 추적 → 매니페스트 해독 → 나만의 스킬 팩"으로 난이도 상승. (전부 합법적 학습 범위)

과제 1. 행동 사슬 따라 읽기 난이도 ★☆☆☆☆

레포를 클론해 OVERVIEW.mdARCHITECTURE.mdskills/SKILL.md 순으로 읽고, "작업 1건이 거치는 7단계"(규칙로드→라우팅→경험조회→도구확인→실행→산출→진화)를 자기 말로 한 문단 요약해 보라. 코드 없이 "에이전트 워크플로 설계"를 읽는 첫걸음.

과제 2. 가상 작업 라우팅 추적 난이도 ★★☆☆☆

routing.md를 펼쳐 두고, 가상의 요청 3개("이 .so 파일 분석", "웹 로그인 암호화 파라미터 찾기", "이 LLM 앱 프롬프트 인젝션 점검")가 각각 어느 스킬로 가는지를 표에서 직접 짚어 보라. "경로 교차"가 일어나는 케이스도 하나 찾아본다.

과제 3. bootstrap 매니페스트 해부 난이도 ★★★☆☆

bootstrap-manifest.json 전체를 열어 18개 능력을 9가지 bootstrapKind로 분류한 표를 만들어 보라. 그리고 bootstrap-reverse.sh가 그 데이터를 어떻게 읽어 분기하는지(설치 방식별 처리)를 흐름도로 그린다. "데이터 기반 자동화"의 핵심을 손으로 익히는 과제.

과제 4. field-journal 진화 루프 재현 난이도 ★★★☆☆

field-journal/_template.mdseed-*.md 사례 하나를 비교해, "회고 일지가 어떤 항목으로 구성되는지"를 정리하라. 그런 다음 아무 학습 경험(예: 어떤 라이브러리 설치 삽질)을 그 템플릿에 맞춰 한 건 작성하고, _index.md에 색인 줄을 추가해 본다 — 자기 진화 시스템을 직접 돌려보는 셈.

과제 5. 나만의 미니 스킬 라우팅 팩 만들기 난이도 ★★★★★

보안과 무관한 도메인(예: "데이터 정제" 또는 "글쓰기")을 골라, reverse-skill의 구조를 본떠 ① SKILL.md(총괄) ② routing.md(분류 2-표) ③ 스킬 폴더 2~3개 ④ 작은 bootstrap-manifest.json을 갖춘 미니 스킬 팩을 직접 설계하라. 더 나아가 Claude Code의 스킬/플러그인 포맷에 맞춰 실제로 붙여, "route first, execute second"가 동작하는지 확인한다.

9관련 기술 심화 학습 로드맵

'에이전트 스킬 → 라우팅/오케스트레이션 → MCP 도구 연동 → 자기 진화 시스템'의 4주 코스.

주차주제학습 내용 & reverse-skill 연결
1주차에이전트 스킬 기초코딩 AI의 "스킬/룰/시스템 프롬프트"가 무엇인지, SKILL.md 포맷(agentskills.io). reverse-skill의 skills/*/SKILL.md 여러 개를 비교해 공통 골격 파악.
2주차라우팅 & 오케스트레이션의도 분류, 멀티 스킬 조합("경로 교차"), 총괄 컨트롤러 패턴. routing.mdCTF-Sandbox-Orchestrator(41 서브스킬 편성)를 읽고 분배 로직 학습.
3주차MCP & 도구 자동화MCP 서버 기동 3방식(HTTP/npx/로컬), 데이터 기반 설치(매니페스트+실행기 분리). burp-mcp-full/·bootstrap-manifest.json으로 "도구를 손발로 붙이기" 실습.
4주차자기 진화 & 거버넌스에이전트 메모리(경험 회수·재사용), 자율성과 통제의 균형(자동 머지 vs 사람 리뷰), 복종성 공학. field-journal/·auto-merge-journal.yml·llm-security/를 통합 독해.
학습 팁
"문서 → 흐름도 → 미니 복제"의 삼각 독해

reverse-skill은 보기 드물게 구현이 거의 다 문서(.md)인 레포다. 1) ARCHITECTURE.md의 mermaid 다이어그램으로 전체 흐름을 잡고 → 2) 실제 routing.md·manifest.json이 그 흐름을 어떻게 데이터로 표현했는지 대조하고 → 3) 과제 5처럼 작은 스킬 팩을 직접 복제하면, "에이전트 시스템 설계"의 큰 그림이 한 번에 잡힌다. 보안 도메인 지식이 없어도 아키텍처 학습용으로 충분히 가치가 있다.

10핵심 키워드 사전

reverse-skill 문서·구조에서 반복되는 용어를 한 곳에.

용어
스킬 라우팅 (skill routing)
들어온 작업을 보고 여러 스킬 중 알맞은 하나(또는 조합)로 길을 내주는 분배. reverse-skill은 "대상 유형 + 사용자 의도 + 도구 체인" 3축으로 판정하고, "먼저 라우팅, 다음 실행"을 의무로 둔다.
용어
SKILL.md
한 스킬(작업 방법론)을 정의하는 마크다운 설명서. "언제 쓰는지·도구 사슬·작업 흐름·첫 실행 동작"을 담는다. 코딩 AI 생태계의 스킬 표준 포맷이며, reverse-skill은 이를 22개 스킬에 적용했다.
용어
자가부팅 (bootstrap) & 매니페스트
작업에 필요한 도구가 없을 때 AI가 직접 설치 스크립트를 호출해 채우는 동작(on-demand). 설치 방식은 bootstrap-manifest.json데이터로 적혀 있어, 새 도구 추가가 "코드 수정"이 아니라 "JSON 한 줄"이 된다.
용어
field-journal (경험 라이브러리)
작업이 끝나면 시행착오·해법·재사용 코드를 정해진 틀로 적어두는 자기 진화 메모리. 다음에 같은 유형이 오면 색인(_index.md)을 먼저 뒤져 검증된 절차를 재사용한다. "쓸수록 똑똑해지는" 핵심.
용어
MCP (Model Context Protocol)
AI 에이전트가 외부 도구·데이터에 접근하는 표준 규약. reverse-skill은 IDA·BurpSuite·브라우저 분석 등을 MCP 서버로 연결해, AI가 그 능력을 도구처럼 호출하게 한다(HTTP URL형 / npx 명령형 / 로컬 서버형).
용어
RULES.md & 전역 주입 (global injection)
전체 행동 사슬(0~14단계)을 담은 단일 규칙 파일. 핵심 지시는 "내가 어떤 클라이언트인지 감지해, 그 클라이언트의 전역 설정 위치에 라우팅 규칙을 써넣어라". 한 파일만 유지하면 여러 AI 클라이언트가 같은 라우팅을 공유한다.
용어
tool-index (도구 색인)
현재 머신에 어떤 도구가 있나·경로·버전을 기록한 자동 생성 파일(gitignore, 첫 실행 때 만들어짐). 단, yes는 "실행 파일이 있다"는 뜻일 뿐 클라이언트에 MCP가 등록됐다는 보장은 아니다.
용어
복종성 공학 (agent-obedience-engineering)
llm-security/에 담긴 메타 설계. 에이전트가 설명만 하다 멈추거나, 단계를 건너뛰거나, 빈 확인만 반복하는 것을 막아 실제로 끝까지 실행하게 만드는 프롬프트 기법. "무엇을 할지"뿐 아니라 "정말 하게 만드는 법"까지 설계한 부분.
용어
경로 교차 (Path Crossing)
한 작업이 여러 스킬에 걸칠 때 스킬들을 사슬처럼 잇는 설계(예: APK 분석 중 .so가 나오면 IDA로, PoC를 쓰면 pwn-chain으로). 덕분에 reverse-skill은 모놀리식이 아니라 조립식 스킬 그래프로 동작한다.

11참고 링크

공식 저장소·문서·관련 표준.

GitHub 저장소 · github.com/zhaoxuya520/reverse-skill — 본체. 사람은 OVERVIEW.md, 구조는 ARCHITECTURE.md·skills/SKILL.md·skills/routing.md부터 보면 좋다.

아키텍처 도해 · ARCHITECTURE.md — 행동 사슬·스킬 관계·부트스트랩·자동 진화를 mermaid 다이어그램으로 정리.

사람용 개요 · OVERVIEW.md · OVERVIEW_zh.md — "이게 무엇인가"를 사람 독자용으로 설명.

에이전트 스킬 표준 · agentskills.ioSKILL.md 기반 스킬 포맷(이 레포가 따르는 패턴의 배경).

MCP 규격 · modelcontextprotocol.io — 외부 도구 연동 표준. reverse-skill의 도구 연결 토대.

Claude Code · github.com/anthropics/claude-code — 이 팩이 1순위로 권장하는 코딩 AI 클라이언트.

TrendShift · trendshift.io/repositories/43969