Form tailor
Skill parkjui92/form-tailor
기관 양식 샘플이나 이전 자료를 넣으면 그 틀·문체·서식을 학습해 새 내용을 같은 양식으로 만들어 주는 문서 생성 스킬. 고정 템플릿을 탑재하지 않고, 사용자가 런타임에 제공한 샘플(.hwp/.hwpx/.docx)에서 구조·글머리 체계(□ㅇ-*①Ⅰ)·개조식 문체·표 관행·제목/서명/날짜 형식을 추출(프로파일)한 뒤, 새 원고 내용을 그 프로파일에 맞춰 재구성하고 동일 형식으로 출력한다. 생성 후에는 샘플 대비 서식 충실도(섹션 순서·기호체계·문체 준수)를 점검해 보고한다. 다음 상황에서 반드시 사용한다: '기관 양식대로 만들어줘', '이 샘플처럼 작성', '양식 맞춰서', '이전 보고서 형식으로', '한글 보고서 양식', '보고서 서식 맞춤', '기관 서식 적용', '샘플 문서 틀 재사용' 등의 요청. 백지에서 자유 형식 문서를 쓰는 것이 아니라, 주어진 양식에 정확히 맞추는 작업에 적용한다. 내용 자체의 조사·집필은 별도 스킬/작업으로 하고, 이 스킬은 '양식 이식'에 집중한다.From its SKILL.md
npx -y skills add parkjui92/form-tailorAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 27 days oldThe repository was created 27 days ago. New is not bad, but a brand new repository carrying a familiar-sounding name is the shape a typosquat arrives in, and there has been no time for anyone else to find a problem with it.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
10.9 KB, ~4.1k tokens by cl100k_base, as published. Nobody here has run it
form-tailor — 기관 양식 맞춤 제작
핵심 아이디어: 이 스킬은 특정 기관의 템플릿을 내장하지 않는다. 대신 사용자가 제공한 샘플에서 "양식"을 데이터로 추출하고, 새 내용을 그 틀에 부어 같은 형식으로 출력한다. 즉 양식은 코드가 아니라 런타임 입력이다 — 그래서 어느 기관 양식에도 적용되고, 저장소에는 어떤 기관의 자산도 담기지 않는다.
[샘플 양식] ──파싱──▶ [양식 프로파일] ──┐
├──▶ [양식에 맞춘 새 문서] ──▶ [충실도 점검]
[새 내용/원고] ────정리──────────────────┘
입력 두 가지
- 양식 샘플(필수): 따라 할 틀. 기관 배포 서식, 지난번 보고서/계획서, 빈 양식 폼 등.
.hwp/.hwpx/.docx/ (.pdf는 구조 참고용). - 채울 내용(필수): 새로 담을 원고·메모·요점. 이미 다른 형식으로 쓴 초안이어도 되고, 항목만 나열한 메모여도 된다.
둘 중 하나라도 없으면 사용자에게 요청한다. 특히 샘플 없이 "기관 양식"만 언급되면, "따라 할 샘플 파일을 주시면 그 틀대로 맞춰 드립니다"라고 안내한다(임의로 지어낸 양식을 쓰지 않는다).
Phase 1: 양식 프로파일 추출 (learn-from-sample)
샘플을 파싱해 양식 프로파일을 만든다. 도구 우선순위:
| 형식 | 파싱 도구 (우선순위) |
|---|---|
.hwp / .hwpx | kordoc MCP — parse_document(구조), parse_form(폼필드), extract_profile(스타일), parse_table(표), detect_format |
.docx | python-docx (아래 레시피) → 또는 docx 스킬 |
.pdf | pdf 스킬로 텍스트·레이아웃 참고(정밀 서식은 제한적) |
도구 부재 시: kordoc·pandoc·soffice가 모두 없고 입력이
.docx면 python-docx가 유일 경로다. 이때 아래 레시피를 반드시 따른다. 입력이.hwp/.hwpx인데 kordoc이 없으면, 사용자에게 kordoc 설치를 안내하거나.docx로 저장해 달라고 요청한다(LibreOffice 변환은 표가 평탄화될 수 있음을 알림).
.docx 파싱 레시피 (python-docx)
python-docx는 고수준 API가 스타일 상속을 해석하지 않으므로, 아래 폴백을 지켜야 프로파일이 반쪽으로 비지 않는다:
- 글머리 레벨 감지: 각 문단 텍스트의 선행 글머리 글자(□ ㅇ - * ① Ⅰ)와, 그 앞의 선행 공백 수(
text[:len(text)-len(text.lstrip())]의 길이) 또는paragraph_format.left_indent로 레벨을 판정. 둘 중 관측되는 것을 기록(둘 다 없으면 미관측). - 본문 글꼴:
run.font.name/size가None이면 →styles['Normal'].font→ 그래도 None이면 docDefaults 상속(미해석)으로 보고 "미관측" 표기. ("본문 15pt"식 단정은 관측될 때만.) - 표 헤더 음영: 고수준 API 없음. 셀 XML의
tcPr/w:shd@w:fill(예:D9D9D9)을 직접 읽는다. - 여백·용지:
section.page_width/height,*_margin은 EMU로 정확 관측·복제 가능(신뢰 필드). - 줄간격:
paragraph_format.line_spacing이 None이면 미관측.
원칙: 관측된 것만 프로파일에 적고, 못 읽은 필드는
UNOBSERVED로 명시한다(지어내지 않는다). 무엇이 관측되고 무엇이 안 되는지를 사용자에게 알린다.
추출할 프로파일 항목(→ references/profile-schema.md의 스키마로 기록):
- 문서 유형·용도, 섹션 골격(대제목→절→항목→번호 계층·순서, 필수 섹션), 글머리 기호 체계(레벨별 기호·들여쓰기), 문체(개조식 어미/시제), 머리 정보(제목·부제·날짜표기·서명형식·문서번호), 표 관행(열 구성·헤더·정렬·음영), 강조, 분량, 글꼴·여백(관측 가능한 것만; hwpx는 원본 스타일 공여 보존).
프로파일 승인 게이트
프로파일을 사용자에게 요약 보고하고 확인받는다 — "이 샘플에서 이런 틀을 읽었습니다(관측 못 한 항목: …). 이대로 맞출까요?" 잘못 읽은 틀로 전체를 생성하는 낭비를 막는다.
비대화형·단발 실행(배치·서브에이전트 등) 폴백: 확인을 기다릴 수 없으면 프로파일(UNOBSERVED 포함)을 산출물로 남기고 진행한다. 확인이 필요한 항목은 Phase 4 점검표에 ⚠️로 집약한다. 중단하지 않는다.
Phase 2: 내용 매핑
새 내용을 프로파일의 골격에 배치한다.
- 새 원고를 섹션 골격에 매핑한다. 프로파일에 있는 필수 섹션이 비면 사용자에게 물어 채운다.
- 머리 정보 결측 처리: 새 내용에 날짜·서명자 등 머리 정보가 없으면, 지어내지 말고 형식만 적용한 placeholder(예: 날짜 형식 유지 + "(작성일)", 서명 "직책 (이름)")를 넣고 Phase 4 점검표에 ⚠️로 표시해 확인을 요청한다.
- 각 항목을 프로파일의 글머리 레벨에 할당한다(기호·선행공백은 텍스트에 넣지 않는다 — Phase 3 생성기가 부착. 이중부착 금지).
- 프로파일의 문체 규칙을 적용한다: 개조식이면
references/korean-form-conventions.md의 명사구→개조식 변환표(섹션 성격별 시제 매핑)를 따라 어미를 정규화. 제목·날짜·시간도 관행에 맞춰 정규화. - 표 스키마 충돌 규칙(중요): 새 데이터의 자연스러운 열 수가 샘플 표의 열 수와 다르면, 샘플 열에 무단 편입하지 않는다(빈 칸을 "-"로 메우거나 한 값을 반복해 채우면 데이터가 왜곡됨). 사용자에게 "샘플 표 열(구분/현황/계획/비고)에 맞출지, 데이터에 맞는 열로 새 표를 만들지"를 묻는다. 비대화형이면 데이터 형상에 맞는 표로 생성하고 그 사실을 Phase 4에 ⚠️로 표시한다.
- 내용의 사실·수치는 바꾸지 않는다. 양식만 이식한다. (문체 변환 중 의미가 바뀌면 안 됨 — 애매하면 원문 유지 후 플래그.)
산출 중간물: profile-schema.md 형식의 채워진 spec(JSON/YAML).
Phase 3: 생성
프로파일에 맞는 형식으로 출력한다. 글머리 기호·선행공백은 이 단계에서 부착한다(레벨별 기호 + 관측된 들여쓰기).
- hwpx 샘플 → hwpx 출력: kordoc
fill_form(폼필드 양식) 또는generate_document/스타일-공여 빌드로 원본 서식을 보존해 생성. 표·글꼴·여백을 살린다. - docx 샘플 → docx 출력: python-docx로 생성. 원본에서 관측한 서식을 명시적으로 재적용한다(제목 글꼴·크기·정렬, □절 볼드, 셀 음영
w:shd, 여백 EMU, 본문 Normal 스타일). docx 스킬이 있으면 활용. - 사용자가 원하면 마크다운 초안도 병행 출력(검토용).
출력 경로는 사용자 지정 또는 작업 디렉터리. 원본 샘플을 덮어쓰지 않는다(새 파일명).
Phase 4: 충실도 점검 (검증 내장 — 이 스킬의 차별점)
생성물을 샘플 프로파일과 대조해 서식 충실도를 점검하고 보고한다. references/fidelity-checklist.md를 사용한다(hwpx·docx 각각의 서식 보존 항목 포함). hwpx는 kordoc compare_documents로 구조 비교 가능.
## 양식 충실도 점검
| 항목 | 샘플 | 생성물 | 판정 |
|------|------|--------|------|
| 섹션 골격·순서 | Ⅰ□ㅇ- 계층 | 동일 | ✅ |
| 글머리 기호체계 | ㅇ1/-3/*5칸 | 동일 | ✅ |
| 기호 이중부착 | — | 0건 | ✅ |
| 개조식 문체 | ~함/~임 | 3개 항목 서술체 잔존 | ⚠️ 위치 명시 |
| 날짜 표기 | '26. 5. 7.(목) | 형식 일치, 값 placeholder | ⚠️ 확인요청 |
| 표 열 구성 | 4열 | 데이터 형상에 맞춰 2열 생성 | ⚠️ 사유 명시 |
| 서명 실명 | (샘플 실명) | 미복제 | ✅(확인요청) |
| 필수 섹션 | 붙임 포함 | 누락 | 🔴 |
→ ⚠️/🔴 항목은 수정 위치를 명시하고, 승인 시 반영.
충실도 점검은 "양식을 지켰다는 착각"을 막는다 — 생성 자체보다 이 대조가 이 스킬의 값이다.
안전·범위 원칙
- 독점 템플릿 미탑재: 이 스킬은 어떤 기관의 템플릿·서식 파일도 내장하지 않는다. 양식은 항상 사용자가 런타임에 제공하며, 그 샘플은 사용자의 것이다.
- 양식 이식에 집중: 내용의 조사·집필·사실 생성은 이 스킬의 일이 아니다. 내용이 부족하면 지어내지 말고 사용자에게 요청한다.
- 사실 불변: 문체·서식 변환이 수치·고유명사·주장을 바꾸지 않는다. 애매하면 원문 유지 후 플래그.
- 샘플 개인정보 미복제: 샘플의 실명 서명·연락처가 새 문서에 그대로 복제되지 않도록, 머리 정보는 새 내용 기준으로 채우고 남은 잔여는 점검에서 표시한다.
- 관측만 기록: 못 읽은 서식은 지어내지 않고
UNOBSERVED로 남긴다. - 경량 승인 게이트: 프로파일 요약(Phase 1)과 충실도 점검(Phase 4)에서 확인. 비대화형이면 산출물로 남기고 진행.
관련 도구·레퍼런스
- 양식 프로파일 스키마:
references/profile-schema.md - 한국 공문서 일반 작성 관행 + 명사구→개조식 변환표:
references/korean-form-conventions.md - 충실도 점검 항목(hwpx·docx):
references/fidelity-checklist.md - hwpx 심화(스타일 공여 빌드, 폼필드 채움)는 kordoc MCP 문서 참조. kordoc 미설치 시 위 .docx 레시피로 폴백하되 hwpx 고유 서식 보존은 제한됨을 알린다.
What ships with it: 11 files
96.2 KB alongside SKILL.md
docs/
- why.md29.5 KB
examples/
- example-walkthrough.md2.1 KB
references/
- fidelity-checklist.md2.5 KB
- korean-form-conventions.md3.9 KB
- profile-schema.md4.6 KB
- CHANGELOG.md2.6 KB
- form-tailor.skill34.2 KB
- .gitignore36 B
- LICENSE1.0 KB
- README.en.md7.8 KB
- README.md7.9 KB