Markdown Publisher
Markdown 원본을 보존하고 외부 네트워크에 의존하지 않는 HTML/PDF 산출물을 만든다.
절차
- 입력과 출력 경로를 확인한다. 기존 산출물은 사용자가 명시적으로 교체를 요청한 경우에만
--force로 덮어쓴다. - 용도에 맞춰 테마를 고른다.
executive: 의사결정 문서와 경영 보고서technical: 코드, 표, 기술 명세minimal: 메모와 범용 문서
node scripts/publish.mjs --input <source.md> --output-dir <artifact-dir> --theme <theme>를 실행한다. PDF가 필요하면--pdf를 추가한다.- 생성된
artifact-manifest.json에서 원본·HTML·PDF 해시와 상태를 확인한다. - PDF를 요청했다면 반드시
pdf-qa로 PDF를 페이지 이미지로 렌더링하고 검수한다. QA가 통과하기 전에는 PDF 작업을 완료로 보고하지 않는다.
세부 CLI, 실패 계약, 출력 구조는 publishing contract를 읽는다. 지원하는 Markdown 문법과 안전 경계는 Markdown subset을 읽는다.
완료 조건
- 원본 사본, 단일 HTML, manifest가 서로 연결되고 SHA-256으로 식별된다.
- HTML에 원격 스타일시트, 스크립트, 웹폰트 또는 네트워크 이미지가 없다.
- 한글/영문 시스템 폰트 fallback, 표, 코드 블록, callout, 인쇄 페이지 분리가 적용된다.
- PDF 요청 시 브라우저 preflight와 PDF header/EOF envelope 검증이 성공한다. 브라우저가 완성된 파일을 쓴 뒤 남아 있으면 전용 프로세스 그룹만 제한 종료하고 그 사실을 manifest에 기록한다.
- PDF 요청 시 manifest가
pdf-qa를 다음 필수 단계로 기록하며, 실제pdf-qaPASS가 별도로 확인된다.
렌더링 실패, 브라우저 부재, 외부 이미지, 지원하지 않는 로컬 이미지 또는 깨진 입력을 성공으로 축소 보고하지 않는다.