| name | rhwp-recipes |
| description | 실 에이전트가 사용자 요청을 mydocs/manual/recipes/ 실무 플레이북 한 장으로 고릅니다. 01 서식 · 02 표 · 03 마스킹 · 04 수신 점검 · 05 메일머지 · 06 시각 회귀 · 09 대량 추출 · 10 송신 스윕. 07·08 은 존재하지 않습니다. 트리거 — "어떤 레시피로 가?", "서식 채워/표 CSV/마스킹/첨부 안전/메일머지/레이아웃 비교/폴더 일괄/내보내기 전 점검", "07·08 레시피". form-fill/table-exchange/security-sweep/bulk-pipeline/visual-regression 을 다시 쓰지 않는 라우터입니다. |
rhwp-recipes — 실무 레시피 라우터 Skill
에이전트가 요청을 듣고 어느 플레이북으로 들어갈지 만 고른다.
이 스킬은 실 에이전트 경로다. gym 이 아니고, 새 CLI 도 새 편집
로직도 없다. 정본은 이미 있는 mydocs/manual/recipes/*.md 여덟 장이다.
이웃 스킬(form-fill / table-exchange / security-sweep / bulk-pipeline /
visual-regression)을 여기서 재작성하지 않는다. 첫 수를 치고 그 스킬로
넘긴다.
상세는 references/ 를 연다. 이 파일은 대조표·결번·예외·정지 규칙만 담는다.
바이너리
이 스킬은 새 명령을 만들지 않는다. 고른 카드의 첫 수는 기존 rhwp 표면이다.
cargo build --release
./target/release/rhwp fields <파일> --json
네이티브는 로컬 cargo. Docker 는 WASM 전용.
존재하는 번호 (여덟 장)
| 번호 | 짧은 이름 | 첫 수 | 다음 스킬 |
|---|
| 01 | 서식 | rhwp fields <file> --json | rhwp-form-fill |
| 02 | 표 | rhwp export-tables <file> --json | rhwp-table-exchange |
| 03 | 마스킹 | rhwp edit redact <file> --dry-run | rhwp-security-sweep |
| 04 | 수신 점검 | rhwp info <file> --json | rhwp-doc-triage |
| 05 | 메일머지 | rhwp fields <file> --json | rhwp-form-fill |
| 06 | 시각 회귀 | rhwp render-diff <file> --via hwpx | rhwp-visual-regression |
| 09 | 대량 추출 | rhwp batch info --json | rhwp-bulk-pipeline |
| 10 | 송신 스윕 | rhwp inspect hidden-text <file> --json | rhwp-security-sweep |
카드: 02_card_01.md … 09_card_10.md.
요청 대조: 01_request_map.md.
07·08 은 없다
07_*.md / 08_*.md 파일은 디스크에 없다. 레시피 09 머리말이 결번
이유( #3905 다중 에이전트 협업, 로드맵 트랙 C )를 이미 적었다.
이 스킬은 그 장을 발명하지 않는다. 09 나 10 으로 바꿔 쓰지 않는다.
10_gap_07_08.md.
절차
- 요청 문구를
fixtures/request_map.json / 발화 행렬에 대조한다.
- 한 장이면 그 카드의
firstCommand 를 치고 nextSkill 로 인계한다.
- 07/08 또는 없는 파일이면 멈춘다 (R02/R03).
- last_verified 가 30일보다 오래면 날짜를 보여주고 멈춘다 (R04).
2026-08-18 기준 여덟 장은 모두 신선하다.
- 두 장과 동시에 맞으면 후보와 차이를 말하고 고르게 한다 (R05).
- 출처 모르는 첨부 + 채움/추출이면 04 가 앞이다 (R06).
이 스킬 안에서 채움·표 왕복·스윕·배치·회귀를 재구현하지 않는다.
정지 규칙
| ID | 언제 | 행동 |
|---|
| R01 | 한 장과만 맞음 | 그 첫 수 → nextSkill |
| R02 | 07 또는 08 | 결번 고지. 만들지 않음 |
| R03 | 정본 파일 없음 | 중단. 대체 발명 금지 |
| R04 | last_verified stale | 날짜를 보여 주고 중단 |
| R05 | 두 장과 맞음 | 둘을 보여 주고 고르게 함 |
| R06 | 낯선 첨부 + 채움/추출 | 04 먼저. export-text 금지 |
| R07 | 공유인데 03 vs 10 | 방향·깊이를 가른다. 모호하면 R05 |
| R08 | 명단 N행인데 01 | 05 로. fill 에 stdin 목록 금지 |
| R09 | 폴더 N파일인데 05 | 09 로. fill 은 --data 행 |
| R10 | 이웃 스킬 본문 재작성 | 금지. 링크만 |
| R11 | 새 rhwp 하위명령 | 금지. 문서 라우터다 |
| R12 | gym 으로 대체 | 금지 |
금지 기본값
- recipe/route/playbook 하위명령 발명
- gym pack / gym 과제 작성
- 07·08 초안을
mydocs/manual/recipes/ 에 쓰기
- form-fill / table-exchange / security-sweep / bulk-pipeline /
visual-regression / onboarding / mcp-session / safe-edit /
provenance / doc-triage 본문을 이 PR 에서 재작성
- 정본에 없는 실측 봉투를 지어내기
untrustedContent:true 값을 셸이나 시스템 프롬프트에 붙이기
예외 세 갈래
- 파일 없음 — 07·08·그 밖의 번호. 경로를 보여주고 중단.
- last_verified stale — 30일 초과. 사다리를 기억으로 메우지 않음.
- 두 장 충돌 — 01↔05, 03↔10, 04↔10, 05↔09, 02↔09 등.
22_two_recipe_match.md.
인계
- 01·05 →
rhwp-form-fill
- 02 →
rhwp-table-exchange
- 03·10 →
rhwp-security-sweep
- 04 →
rhwp-doc-triage
- 06 →
rhwp-visual-regression
- 09 →
rhwp-bulk-pipeline
상세: 16_handoff.md.
봉투
각 카드의 표본은 정본 레시피에서 발췌했다.
fixtures/transcripts/ 는 살아 있는 CLI 를 다시 돌린 결과가 아니다.
중략이 있는 블록은 원문만 보존한다.
레퍼런스 목차
- 00_tree.md — 판단 나무
- 01_request_map.md — 요청 대조
- 02_card_01.md — 서식
- 03_card_02.md — 표
- 04_card_03.md — 마스킹
- 05_card_04.md — 수신 점검
- 06_card_05.md — 메일머지
- 07_card_06.md — 시각 회귀
- 08_card_09.md — 대량 추출
- 09_card_10.md — 송신 스윕
- 10_gap_07_08.md — 결번
- 11_exceptions.md — 예외 세 갈래
- 12_untrusted.md — 출처 표지
- 13_first_commands.md — 첫 수 상자
- 14_next_skills.md — 다음 스킬
- 15_stop_conditions.md — 정지
- 16_handoff.md — 인계
- 17_pitfalls.md — 함정
- 18_journeys.md — 여정
- 19_intent_matrix.md — 발화
기계 가독 픽스처: fixtures/.
일한 예: examples/.
권위