rhwp Rust 코드를 hwp-devcode-kr TypeScript로 마이그레이션하는 에이전트 팀을 조율하는 오케스트레이터. HWP 파서/렌더러 TypeScript 포팅, 모듈 마이그레이션, 구현, 검증 요청 시 이 스킬을 사용할 것. 후속 작업: 특정 모듈 재구현, 포팅 결과 수정, 검증 재실행, 이전 결과 개선 요청 시에도 이 스킬을 사용.
rhwp Rust 파서/모델/렌더러를 TypeScript로 마이그레이션하는 에이전트 팀을 조율한다.
| 팀원 | 에이전트 파일 | 역할 | 출력 |
|---|---|---|---|
| hwp-analyst | .claude/agents/hwp-analyst.md | Rust 분석 + TS 설계 | _workspace/{module}-design.md |
| hwp-implementer | .claude/agents/hwp-implementer.md | TypeScript 구현 | src/parser/*.ts, src/model/*.ts |
| hwp-validator | .claude/agents/hwp-validator.md | 구현 검증 | _workspace/{module}-validation.md |
_workspace/ 존재 여부 확인_workspace/ 없음 → 초기 실행 (Phase 1~4 전체)_workspace/ 있음 + 특정 모듈 수정 요청 → 해당 모듈만 재실행_workspace/ 있음 + 새 모듈 요청 → Phase 2~4만 실행 (기존 _workspace 보존)references/parser-module-map.md의 구현 순서 기준_workspace/completed.md에서 확인_workspace/ 디렉토리 생성 (없는 경우){module}-design.md)팀 생성:
TeamCreate(
team_name: "hwp-migration-team",
members: [
{
name: "hwp-analyst",
agent_type: "hwp-analyst",
model: "opus",
prompt: "hwp-module-port 스킬을 참조하여 {모듈 목록}을 분석하고 TypeScript 설계 문서를 생성하라.
설계 완료 시 hwp-implementer에게 SendMessage로 알린다.
설계 문서는 _workspace/{module}-design.md에 저장."
},
{
name: "hwp-implementer",
agent_type: "hwp-implementer",
model: "opus",
prompt: "hwp-module-port 스킬을 참조하여 analyst의 설계 문서를 기반으로 TypeScript를 구현하라.
구현 후 tsc --noEmit로 컴파일 확인.
완료 시 hwp-validator에게 SendMessage로 알린다."
},
{
name: "hwp-validator",
agent_type: "hwp-validator",
model: "opus",
prompt: "implementer가 완료 메시지를 보내면 구현을 검증하라.
Rust CLI(rhwp dump)와 출력을 비교한다.
PASS 시 오케스트레이터에게 알림, FAIL 시 implementer에게 수정 요청."
}
]
)
작업 등록:
TaskCreate(tasks: [
{ title: "{module} 분석", assignee: "hwp-analyst" },
{ title: "{module} 구현", assignee: "hwp-implementer", depends_on: ["{module} 분석"] },
{ title: "{module} 검증", assignee: "hwp-validator", depends_on: ["{module} 구현"] },
...
])
팀원들이 자체 조율하며 파이프라인 방식으로 작업한다:
references/parser-module-map.md 구현 순서)오케스트레이터는 다음 상황에서 개입한다:
_workspace/completed.md 업데이트 (완료 모듈 목록)src/index.ts에 공개 API 노출 여부 확인npm run type-check 실행 (전체 프로젝트)package.json에 추가 후 npm install_workspace/
├── completed.md ← 완료된 모듈 목록
├── {module}-design.md ← analyst 산출물
├── {module}-validation.md ← validator 산출물
└── test-runner.ts ← validator 테스트 스크립트
src/ ← implementer 산출물 (실제 프로젝트 코드)
├── parser/
├── model/
└── index.ts
입력: "byte_reader.rs와 record.rs를 TypeScript로 포팅해줘"
1. analyst가 두 파일 읽고 설계 문서 생성
2. implementer가 byte-reader.ts, record.ts 구현
3. validator가 컴파일 + 기본 파싱 동작 확인
4. 사용자에게 완료 보고
입력: "doc_info.rs 포팅해줘" (byte_reader, record 미구현 상태)
1. analyst가 의존성 확인
2. 선행 모듈(byte_reader, record, header) 미구현 감지
3. 사용자에게 "선행 모듈 먼저 구현 필요" 보고 후 순서 제안
references/parser-module-map.mdhwp-module-port 스킬hwp-mcp-build 스킬