세션 요약

인천시 청년정책 공모전 본선팀의 8월 계획서에 대한 보완 컨설팅을 여러 회차에 걸쳐 진행해, 로컬 sakyowon-ai\인천 팀러닝\ 폴더의 계획서 전 팀(18팀) 커버를 완료했다. 잇다 팀은 5개 질문 회신문으로, 나머지 17팀은 계획서 전체 보완 컨설팅 문서(<팀명>_컨설팅.hwpx)로 대응했다.

산출물

  • 위치: sakyowon-ai\인천 팀러닝\<팀명>_컨설팅.hwpx 18건
  • 팀 목록: 잇다(5질문 회신) / 구해줘룸즈 / 캠프마케터 / 리셋 / 렛츠고은 / 코너스톤 / 18시39분 / 마중물 / 숨셋 / 안심집사 / 안전점검단 / 호식이세마리치킨 / 인천의미래 / Y-FIX / 영세이버 / 정착메이트 / 청사진 / 서구도서관
  • md 원본·추출 원문 보존: 인천 팀러닝\_컨설팅원본md\ (md 17건 + 원문 txt 19건) — 수정 요청 시 md를 고쳐 재변환
  • 문서 형식: 총평(강점 + 심사 관점 급소 4개) → 보완 과제 5~7개(우선순위순, “현재 계획서 → 왜 문제 → 보완안”, 새 추정치는 (가정) 표시) → 우선 반영 체크리스트

제작 파이프라인

  1. 원문 일괄 추출: hwp→hwp5txt, pdf→pypdf. hwp5txt가 죽는 파일은 신규 제작한 팀자료\_도구\hwp_direct_extract.py(olefile로 BodyText 레코드 직접 파싱, 서로게이트쌍 처리)로 폴백
  2. 팀당 전담 에이전트 병렬(4~6개씩): 완성 예시 1건(구해줘룸즈)을 형식 템플릿으로 제공 + 팀별 고유 급소 후보(임대인 수선의무 대행 역효과, 복지부 플랫폼 연계 권한, 민감정보 등)를 프롬프트에 지정
  3. 형식 전수검수는 스크립트, 품질은 추출이 가장 위험했던 팀 1건 정독
  4. md→hwpx 일괄 변환: md2hwpx_report.py + fix_table_rows.py 후처리, 변환 후 마크다운 잔재·필수 섹션 자동 검증

레슨

  • hwp5txt 폴백: summaryinfo AttributeError나 UINT16 ParseError로 죽는 hwp는 olefile로 BodyText 스트림을 zlib 해제(-15) 후 레코드 헤더(tagid 10bit/size 12bit)를 직접 파싱하면 PARA_TEXT(0x43)에서 텍스트를 건질 수 있다. UTF-16 서로게이트쌍 결합과 8-WCHAR 컨트롤 문자 스킵이 핵심.
  • 파일 크기 대비 텍스트가 적으면 직접 파싱과 교차 확인 — 비슷하면 이미지 위주 문서가 맞다(18시39분 2.7MB→5.9천자).
  • 형식 템플릿은 빈 양식보다 완성 예시 1건이 품질 편차를 없앤다. 공통 점검 7항목에 더해 팀별 도메인 리스크를 프롬프트에 심으면 일반론이 사라진다.
  • 컨설팅 공통 급소 패턴: 성과지표가 활동지표에 머무름 / 팀 권한 밖 실행주체(행정조치·타 기관 플랫폼) / 예산 덧셈 불일치·산출근거 공백 / 통계 출처 부재 / 기존 사업 재포장 질문 방어 부재.

남은 일

  1. 한글에서 표 레이아웃 육안 확인 (이 PC는 한컴 COM 자동화 불가)
  2. 팀 배포·회신 여부는 이사장 판단
  3. 잇다 팀만 계획서 전체 보완 컨설팅 미작성(5질문 회신문만 존재) — 필요 시 추가