Claude Code·Cursor·Cline 같은 코딩 AI가 보안·역공학 작업을 만났을 때, "무슨 도구를 어떤 순서로 써야 하는지"를 스스로 판단하게 만드는 스킬 라우팅 팩이다. 핵심은 세 가지 — ① 작업을 분류해 알맞은 스킬로 보내는 라우터, ② 필요한 도구를 그때그때 깔아주는 자가부팅(bootstrap) 매니페스트, ③ 작업이 끝나면 경험을 글로 남겨 스스로 진화하는 경험 라이브러리(field-journal). 코드가 아니라 마크다운 규약(.md 매니페스트)으로 짜인, "에이전트 운영체제"에 가까운 구조다. (저장소: zhaoxuya520/reverse-skill · 22개 스킬 + 41개 CTF 서브스킬 · 다국어 README(중/영) · MIT 라이선스 · TrendShift #13)
"코딩 AI에게 보안 작업용 두뇌(라우터) + 손발(도구) + 기억(경험)을 한 번에 달아준다."
일반적인 코딩 AI(Claude Code, Cursor 등)에게 "이 APK 뜯어줘"라고 하면, 어떤 도구(jadx? apktool? Frida?)를 쓸지 헤매거나, 설명만 길게 늘어놓고 정작 실행은 안 하는 경우가 많다. reverse-skill은 이 혼란을 하나의 실행 사슬로 바꾼다 — 작업이 들어오면 ① 라우터가 유형을 분류해 알맞은 스킬 폴더로 보내고, ② 필요한 도구가 없으면 자동으로 설치하고, ③ 끝나면 겪은 시행착오를 일지로 남겨 다음 번에 재사용한다.
가장 먼저 짚을 점 — 이건 실행 가능한 프로그램이 아니라 "지시문 묶음"이다. 거의 모든 핵심 파일이 마크다운(.md)으로, AI가 읽고 그대로 행동하도록 설계됐다. SKILL.md(총괄 입구), routing.md(분류 표), RULES.md(행동 규칙) 같은 파일이 코드가 아니라 "프롬프트/규약"으로 에이전트의 행동을 프로그래밍한다. 여기에 PowerShell·Bash 스크립트(도구 설치·검사용)와 JSON 매니페스트가 곁들여진다.
SKILL.md 한 장으로 "언제 쓰는지·어떤 도구 사슬을 쓰는지·작업 흐름"을 적어둔다. '스킬 라우팅'은 들어온 작업을 보고 22개 스킬 중 알맞은 하나(또는 조합)로 길을 내주는 분배 과정. 사람이 분류하는 게 아니라 AI가 routing.md 표를 읽고 스스로 고른다.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번 섹션의 부팅 절차를 실행하라"고 명시한다.
"단일 도구 설치기가 아니라, 에이전트의 작업 흐름 자체를 설계한 '운영체제'다."
2025~2026년은 "코딩 에이전트에 스킬을 입히는" 시대다. Claude Code의 플러그인·스킬, Cursor Rules, Cline 커스텀 인스트럭션 등으로 AI의 행동을 도메인에 맞게 조형하는 게 유행이다. 그런데 대부분은 "하나의 도구를 잘 쓰게 하는" 수준에 그친다. reverse-skill이 눈에 띄는 이유는 한 도메인(보안·역공학) 전체를 분류 → 도구 준비 → 실행 → 회고·진화라는 닫힌 루프로 묶었기 때문이다.
보안 작업은 대상(APK·ELF·JS·펌웨어·웹)마다 완전히 다른 도구·절차(playbook)가 필요하다. 맨몸 AI는 jadx를 쓸지 IDA를 쓸지 헤매고, 도구가 안 깔려 있으면 막히고, 어렵사리 푼 문제도 다음 세션에선 기억하지 못해 처음부터 다시 헤맨다. 게다가 "설명은 길게 하는데 실제 실행 단계로 못 들어가는" 무한 확인 루프에 빠지기 일쑤다.
① 라우터가 "대상 유형 + 사용자 의도 + 도구 체인" 세 축으로 작업을 분류해 알맞은 스킬로 보낸다. ② 도구가 없으면 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·인가된 테스트)에서만 써야 하며, 레포 자체도 라이선스·면책 조항에서 이를 강조한다. (이 글은 공격 기법이 아니라 에이전트 아키텍처를 설명하는 데 집중한다.)
"코드"보다 "규약+스크립트+매니페스트". 세 층 — 지시 레이어 / 자동화 레이어 / 연동 레이어.
reverse-skill은 일반적인 "백엔드/프론트엔드/인프라" 프로젝트가 아니다. 산출물의 대부분이 AI가 읽는 문서(.md)이고, 나머지가 그 문서를 거드는 스크립트(.ps1/.sh)·매니페스트(.json)·MCP 브리지다. 그래서 ① 지시 레이어(Instruction) ② 자동화 레이어(Automation) ③ 클라이언트 연동 레이어(Integration) 셋으로 보면 머리에 잘 들어온다.
이 레포의 진짜 "코드"는 마크다운이다. 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의 과도한 망설임을 줄이는 선례 파일 |
MUST=반드시, MUST NOT=절대 금지, SHOULD=원칙상 해야(안 하면 사유 설명), MAY=선택. reverse-skill의 SKILL.md는 이 어휘를 빌려, AI가 "권고"가 아니라 "의무"로 절차를 따르게 못 박는다.지시만으론 도구가 깔리지 않는다. 그래서 실제 OS에서 도는 스크립트가 붙는다. 핵심은 bootstrap-manifest.json — "어떤 도구를 어떤 방식으로 설치할지"를 데이터로 적은 표다. 스크립트는 이 표를 읽어 설치를 수행한다(설정 vs 실행의 분리).
| 파일/도구 | 역할 |
|---|---|
scripts/bootstrap-manifest.json | 18개 도구의 설치 레시피(설치 방식·저장소·검증 명령). 데이터 기반 |
scripts/bootstrap-reverse.ps1 / .sh | 매니페스트를 읽어 누락 도구를 설치하는 실행기(Windows/Bash 동등 제공) |
scripts/refresh-tool-index.ps1 / .sh | 현재 머신을 스캔해 tool-index.md/.json 생성(어떤 도구가 있나) |
tool-index.md (자동 생성·gitignore) | 이 머신의 도구 상태(yes/no·경로·버전). 레포에 없고 첫 실행 때 만들어짐 |
| PowerShell / Bash | Windows가 1순위 경로, Kali·Ubuntu·macOS는 Bash 동등 경로 |
매니페스트 = 부품 카탈로그, 스크립트 = 창고 직원. 카탈로그(JSON)에는 "이 부품은 GitHub 릴리스 ZIP에서, 저 부품은 pip로, 또 다른 건 winget으로 받는다"가 적혀 있고, 직원(스크립트)은 카탈로그만 보고 그대로 발주·설치한다. 새 도구를 추가할 땐 카탈로그에 한 줄 적으면 직원이 알아서 처리한다.
마지막으로, 이 규약을 실제 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 Actions | auto-merge-journal.yml — field-journal 전용 PR만 검증·자동 머지 |
심장은 세 개의 톱니바퀴 — '라우터(분류)', '부트스트랩(도구 보급)', 'field-journal(회고·진화)'.
reverse-skill의 동작은 하나의 행동 사슬로 요약된다. 작업이 들어오면 AI는 정해진 순서로 문서를 읽어 길을 정하고, 도구를 확인·보충한 뒤 실행하고, 끝나면 경험을 남긴다. 실제 ARCHITECTURE.md의 흐름을 단순화하면 다음과 같다.
bootstrap-manifest.json에 데이터로 적혀 있고, 9가지 설치 유형(아래 표)을 지원한다.routing.md는 단순한 목록이 아니라 "대상 유형 / 사용자 의도" 두 개의 큰 표다. AI는 들어온 작업을 이 표와 대조해 정확히 한 곳(또는 조합)으로 보낸다. 핵심 규칙은 "먼저 라우팅, 그 다음 실행"과 "안 맞으면 억지로 끼우지 말고 새 스킬을 제안"이다.
| 대상 유형(일부) | 라우팅 목적지 |
|---|---|
| APK / Android | apk-reverse/ (핵심이 .so면 ida-reverse/로 재분기) |
| exe/dll/so/elf | ida-reverse/ 또는 radare2/ |
| 프론트엔드 JS | js-reverse/ (필요 시 jshookmcp CDP/Hook) |
| 펌웨어 / IoT | firmware-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으로) 스킬들이 사슬처럼 이어진다. 모놀리식이 아니라 조립식 스킬 그래프인 셈이다.
도구 설치 로직을 코드에 하드코딩하지 않고 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-zip | GitHub 릴리스 ZIP 받아 압축 해제 | jadx, radare2 |
pip-package | pip로 파이썬 패키지 설치 | frida-tools, ida-pro-mcp |
winget-package | Windows 패키지 매니저 | (Windows 전용 도구) |
npm-mcp / npm-global | npx로 MCP 실행 / 전역 npm 설치 | jshookmcp 계열 |
local-http-mcp | 로컬 HTTP MCP 서버 URL 등록·기동 | IDA·BurpSuite·anything-analyzer |
git-clone / go-install | 소스 클론 / Go 설치 | 일부 도구 |
가장 독특한 부분. 작업이 끝나면 AI는 field-journal/에 "무슨 작업을, 어떤 사슬로, 어떤 함정을 겪고, 어떻게 풀었는지 + 재사용 가능한 코드"를 정해진 템플릿(_template.md)으로 적는다. 다음에 같은 유형이 오면 _index.md를 먼저 뒤져 검증된 절차를 재사용하고 같은 함정을 피한다. 시간이 갈수록 똑똑해지는 경험 라이브러리다.
| 구성 | 역할 |
|---|---|
_template.md | 회고 작성 틀(시나리오·목표·실행 사슬·함정표·핵심 코드·개선안·재사용 패턴) |
_index.md | 자동 생성 색인(시나리오별 분류). 현재 실제 6건 + 시드 17건 |
seed-*.md | 미리 넣어둔 참고 사례(실제 완료로 안 침). "맨바닥 출발" 방지용 사전 지식 |
precedent-*.md | "인가된 일상 작업" 선언 — AI의 과도한 면책·망설임을 줄임 |
진화가 무분별하면 라우팅·매니페스트가 오염될 수 있다. 그래서 .github/workflows/auto-merge-journal.yml이 field-journal의 .md 변경만 화이트리스트로 허용해 검증 후 자동 머지하고, routing.md·bootstrap-manifest.json·SKILL.md 같은 핵심 파일 변경은 반드시 PR + 사람(또는 독립 AI) 리뷰를 거치게 강제한다. "스스로 진화하되 함부로 고치진 않는다"는 균형이다.
마지막으로, 이 모든 걸 받치는 메타 설계가 "복종성 공학(agent-obedience-engineering)"이다. llm-security/에 들어있는 이 문서는 에이전트가 설명만 하다 멈추거나, 단계를 건너뛰거나, 빈 확인만 반복하는 것을 막는 프롬프트 엔지니어링 기법을 담는다. 즉 reverse-skill은 "무엇을 할지(라우팅)"뿐 아니라 "실제로 끝까지 실행하게 만드는 법"까지 설계에 넣었다.
레포는 '지시 문서 + 22개 스킬 + 41개 CTF 서브스킬 + 자동화 스크립트'의 평면 모노레포다.
최상위는 크게 ① 부팅·규칙 문서(루트의 .md) ② skills/(22개 스킬 + 라우팅 + 경험 라이브러리) ③ CTF-Sandbox-Orchestrator/(41개 경쟁용 서브스킬) ④ burp-mcp-full/(MCP 브리지) ⑤ 플랫폼 문서·워크플로로 나뉜다. 핵심은 skills/ 안의 "입구 3종(SKILL·routing·tool-index) + 도메인 스킬들 + scripts + field-journal" 구성이다.
이 구조는 대형 병원과 같다. 루트의 RULES.md·SKILL.md는 접수·분류(트리아지) 데스크, routing.md는 "이 증상은 어느 과로" 분류 매뉴얼, 각 스킬 폴더는 전문 진료과(정형외과=apk-reverse, 영상의학=ida-reverse…), scripts/는 약제부·의료기기 보급, field-journal/은 전 의료진이 공유하는 증례 노트다. 환자는 접수 → 분류 → 전문과 → 처치 → 증례 기록의 한 흐름을 탄다.
코드 한 줄 없이도, '에이전트를 설계하는 법' 거의 전부가 이 레포에 들어 있다.
요즘 코딩 AI 생태계의 핵심 산출물이 "스킬"이다. 이 레포는 22개 스킬을 어떻게 한 장의 SKILL.md로 정의하는지의 거대한 표본이다. "언제 쓰는지(트리거)·도구 사슬·첫 실행 동작·실행 계약"을 어떻게 적는지 패턴이 보인다.
skills/apk-reverse/SKILL.md와 skills/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)을 유지하는 법을 보여 준다.
burp-mcp-full/(Java 도구를 Node 브리지로 MCP화)와 IDA·jshookmcp 연동 예시는 "기존 도구를 AI 에이전트의 손발로 만드는 법"의 실전 카탈로그다. MCP의 세 가지 기동 방식(URL 등록형 HTTP, npx 명령형, 로컬 서버형)을 한 레포에서 비교할 수 있다.
README의 mcpServers 예시 JSON을 분석해, "URL 방식 vs command 방식"의 차이를 표로 정리하라. 어떤 도구가 왜 그 방식을 쓰는지 추론해 보면 MCP 연동 감각이 잡힌다.
레포 자체는 가볍다 — 진짜 전제는 'AI 클라이언트 + 합법적 사용 환경'이다.
이 팩 자체는 문서·스크립트·JSON이라 다운로드만으로 끝난다(빌드 불필요). 부담은 컴퓨터 성능이 아니라 ① 이걸 읽고 실행할 AI 클라이언트와 ② 작업에 실제로 필요한 외부 도구(필요할 때 자가부팅), 그리고 무엇보다 합법적·인가된 사용 환경이다.
| 항목 | 요건 | 비고 |
|---|---|---|
| AI 클라이언트 | Claude Code(1순위) · Cursor · Cline · Windsurf · Kiro · Codex CLI | Rules/시스템 프롬프트·MCP를 지원하는 코딩 AI |
| OS | Windows(주 경로) · Kali · Ubuntu/Debian · macOS | 플랫폼별 스크립트(.ps1/.sh)·배포 문서 제공 |
| 런타임 | Node.js 22.12+ · Python 3.x · Java/JDK | JS/MCP·Frida·APK 도구 실행에 필요(작업별) |
| 외부 도구 | jadx · apktool · IDA · radare2 · Frida 등 | 미리 다 깔 필요 없음 — 필요 시 bootstrap이 설치 |
| MCP 서버(선택) | IDA MCP · BurpSuite MCP · jshookmcp · anything-analyzer | 대상 분석용 외부 능력. 클라이언트에 등록 필요 |
| 사용 권한 | 합법·인가된 환경 필수 | 학습 · CTF · 인가받은 테스트에 한정(라이선스 명시) |
레포의 FAQ가 콕 집는 함정 — tool-index.md의 yes는 "이 머신에 실행 파일/런타임이 있다"는 뜻일 뿐, AI 클라이언트가 그 도구(MCP 서버)를 등록·활성화했다는 보장이 아니다. 예: jshookmcp = yes는 단지 node/npx가 있다는 의미다. 또 tool-index.md는 다른 머신에서 스캔한 낡은 값일 수 있으니, 새 컴퓨터에서는 반드시 refresh-tool-index를 먼저 돌려야 한다. 그리고 이 모든 도구는 반드시 인가된 환경에서만 사용해야 한다.
"구조 읽기 → 라우팅 추적 → 매니페스트 해독 → 나만의 스킬 팩"으로 난이도 상승. (전부 합법적 학습 범위)
레포를 클론해 OVERVIEW.md → ARCHITECTURE.md → skills/SKILL.md 순으로 읽고, "작업 1건이 거치는 7단계"(규칙로드→라우팅→경험조회→도구확인→실행→산출→진화)를 자기 말로 한 문단 요약해 보라. 코드 없이 "에이전트 워크플로 설계"를 읽는 첫걸음.
routing.md를 펼쳐 두고, 가상의 요청 3개("이 .so 파일 분석", "웹 로그인 암호화 파라미터 찾기", "이 LLM 앱 프롬프트 인젝션 점검")가 각각 어느 스킬로 가는지를 표에서 직접 짚어 보라. "경로 교차"가 일어나는 케이스도 하나 찾아본다.
bootstrap-manifest.json 전체를 열어 18개 능력을 9가지 bootstrapKind로 분류한 표를 만들어 보라. 그리고 bootstrap-reverse.sh가 그 데이터를 어떻게 읽어 분기하는지(설치 방식별 처리)를 흐름도로 그린다. "데이터 기반 자동화"의 핵심을 손으로 익히는 과제.
field-journal/_template.md와 seed-*.md 사례 하나를 비교해, "회고 일지가 어떤 항목으로 구성되는지"를 정리하라. 그런 다음 아무 학습 경험(예: 어떤 라이브러리 설치 삽질)을 그 템플릿에 맞춰 한 건 작성하고, _index.md에 색인 줄을 추가해 본다 — 자기 진화 시스템을 직접 돌려보는 셈.
보안과 무관한 도메인(예: "데이터 정제" 또는 "글쓰기")을 골라, reverse-skill의 구조를 본떠 ① SKILL.md(총괄) ② routing.md(분류 2-표) ③ 스킬 폴더 2~3개 ④ 작은 bootstrap-manifest.json을 갖춘 미니 스킬 팩을 직접 설계하라. 더 나아가 Claude Code의 스킬/플러그인 포맷에 맞춰 실제로 붙여, "route first, execute second"가 동작하는지 확인한다.
'에이전트 스킬 → 라우팅/오케스트레이션 → MCP 도구 연동 → 자기 진화 시스템'의 4주 코스.
| 주차 | 주제 | 학습 내용 & reverse-skill 연결 |
|---|---|---|
| 1주차 | 에이전트 스킬 기초 | 코딩 AI의 "스킬/룰/시스템 프롬프트"가 무엇인지, SKILL.md 포맷(agentskills.io). reverse-skill의 skills/*/SKILL.md 여러 개를 비교해 공통 골격 파악. |
| 2주차 | 라우팅 & 오케스트레이션 | 의도 분류, 멀티 스킬 조합("경로 교차"), 총괄 컨트롤러 패턴. routing.md와 CTF-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처럼 작은 스킬 팩을 직접 복제하면, "에이전트 시스템 설계"의 큰 그림이 한 번에 잡힌다. 보안 도메인 지식이 없어도 아키텍처 학습용으로 충분히 가치가 있다.
reverse-skill 문서·구조에서 반복되는 용어를 한 곳에.
bootstrap-manifest.json에 데이터로 적혀 있어, 새 도구 추가가 "코드 수정"이 아니라 "JSON 한 줄"이 된다._index.md)을 먼저 뒤져 검증된 절차를 재사용한다. "쓸수록 똑똑해지는" 핵심.yes는 "실행 파일이 있다"는 뜻일 뿐 클라이언트에 MCP가 등록됐다는 보장은 아니다.llm-security/에 담긴 메타 설계. 에이전트가 설명만 하다 멈추거나, 단계를 건너뛰거나, 빈 확인만 반복하는 것을 막아 실제로 끝까지 실행하게 만드는 프롬프트 기법. "무엇을 할지"뿐 아니라 "정말 하게 만드는 법"까지 설계한 부분.공식 저장소·문서·관련 표준.
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.io — SKILL.md 기반 스킬 포맷(이 레포가 따르는 패턴의 배경).
MCP 규격 · modelcontextprotocol.io — 외부 도구 연동 표준. reverse-skill의 도구 연결 토대.
Claude Code · github.com/anthropics/claude-code — 이 팩이 1순위로 권장하는 코딩 AI 클라이언트.
TrendShift · trendshift.io/repositories/43969