Ky Markdown Rebuilder
KyrieCheungYep/ky-markdown-rebuilder
Rebuild visual documents into reliable Markdown by combining text extraction with page or screenshot alignment.
Produces book-style Korean ebook PDFs from a topic or finished manuscript, with six design styles, real book parts and quality-check gates before output.
SKILL.md written in Korean; this summary is our English description.
$ npx skills add gongnyang/bookforge --skill bookforge -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install gongnyang/bookforge bookforge --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
Claude Code skills documentation · loads skills from .claude/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .claude/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gongnyang/bookforge --skill bookforge -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install gongnyang/bookforge bookforge --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .agents/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gongnyang/bookforge --skill bookforge -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install gongnyang/bookforge bookforge --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .cursor/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gongnyang/bookforge --skill bookforge -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install gongnyang/bookforge bookforge --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .gemini/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install gongnyang/bookforge bookforgeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add gongnyang/bookforge --skill bookforge -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .github/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add gongnyang/bookforge --skill bookforge -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install gongnyang/bookforge bookforge --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "bookforge" agent skill from https://github.com/gongnyang/bookforge/tree/main into .opencode/skills/bookforge/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "bookforge", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
bookforgeProduces book-style Korean ebook PDFs from a topic or finished manuscript, with six design styles, real book parts and quality-check gates before output.
Bookforge turns a one-line topic or a finished manuscript in md, txt or docx form into a PDF with the parts of a printed book: cover, table of contents, chapter openers, running heads and a colophon page. Content is written in Markdown only, typesetting is handled by style packs and scripts, and a QC gate keeps any PDF that fails its checks out of the final folder.
A scaffold script creates the book project with a style, title, length and an optional brand color and image policy. Six styles are offered: practical, insight, academic, essay, business and magazine, each with its own trim size and a Typst or HTML engine. Before running, the agent checks for Typst 0.14, Python with PyMuPDF and markdown-it-py and, for the HTML styles, Playwright with Chromium. If something is missing it asks you to install it and stops. Work is organized in phases from contract and content to optional diagrams and the build.
2 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3f1e85e. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/, which the agent can run.
Shell commands in SKILL.md call:
python3npmnodenpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Bookforge Korean Ebook PDF Maker loads about 1.7k tokens when it runs, and up to ~63k if it reads all its reference files. Until then it costs about 98 tokens; SKILL.md has 729 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from gongnyang/bookforge at commit 3f1e85e, republished under its MIT licence (© gongnyang). 729 words, ~1,734 tokens.
.claude/skills/bookforge/SKILL.md (or your agent's skills folder). This skill also uses 151 other files; get the full folder from GitHub.주제 한 줄 또는 완성 원고를 받아, 실제 단행본 해부 구조(표지·차례·장 도비라·러닝 시스템·판권면)를 갖춘 PDF를 만든다. 콘텐츠는 마크다운으로만 쓰고, 조판은 스타일 팩과 스크립트가 전담한다. 품질은 QC 게이트가 물리적으로 강제한다 — 게이트를 통과하지 못한 PDF는 final/에 존재할 수 없다.
이 파일의 경로가 <SKILL>이다. 모든 명령은 <SKILL>을 이 스킬 폴더의 절대 경로로 치환해 실행한다.
typst --version # 0.14.x 필요 (Typst 트랙 — 내장 폰트가 버전에 묶이므로 0.14 계열 고정)
python3 -c "import pymupdf, markdown_it" # PyMuPDF + markdown-it-py (QC·변환)
# HTML 트랙(insight·magazine) + 도해 프리렌더: 전역 playwright + Chromium 실물이 전제다.
# (스크립트가 `npm root -g`에서 playwright를 해석한다 — 프로젝트 로컬 설치로는 안 잡힌다)
npm root -g >/dev/null # npm 자체
node -e "require(require('child_process').execSync('npm root -g').toString().trim()+'/playwright')" \
|| npm i -g playwright # 전역 playwright
npx playwright install chromium # Chromium 바이너리 (없으면 pass1에서 죽는다)
# 도해(diagrams/)를 쓰는 책: 렌더러는 커밋된 벤더 번들(vendor/antv-ssr.bundle.mjs)을
# 쓴다 — npm ci 불필요, 레지스트리 소멸에도 재현. 번들 유실 시에만 복구:
ls <SKILL>/vendor/antv-ssr.bundle.mjs \
|| (cd <SKILL> && npm ci && node vendor/build-bundle.mjs)없는 것이 있으면 사용자에게 설치를 요청하고 중단한다. HTML 트랙·도해 없이 Typst 4스타일만 쓸 거라면 playwright·Chromium·npm ci는 생략 가능.
[ ] P0 계약: 모드·스타일·분량 확정 → 책 프로젝트 스캐폴드
[ ] P1 콘텐츠: outline.json + chapters/ch-NN.md 완성
[ ] P1.5 도해(선택): diagrams/fig-NN.json 작성 → build.py가 자동 프리렌더 (계약: references/diagrams.md)
[ ] P2-3 빌드: build.py → draft/book.pdf
[ ] P4 게이트: qc_gate.py PASS → final/ 생성 확인
[ ] P5 시각 검수: contact_sheet.py → 표지·차례·도비라·본문 4면 이상 눈으로 확인| 스타일 | 성격 | 판형 | 엔진 |
|---|---|---|---|
practical | IT·실용 활용서, 단계별 가이드, 용어집 | 153×225 | typst |
insight | 기술 동향·인사이트 리포트, 데이터 브리핑 | 182×257 | html |
academic | 학술 단행본, 연구 개론, 이론서 | 153×225 | typst |
essay | 산문집, 회고, 문학적 글 | 128×188 | typst |
business | 컨설팅 리포트, 시장 분석, 전략 백서 | 200×280 | typst |
magazine | 트렌드북, 큐레이션, 룩북 | 200×265 | html |
python3 <SKILL>/scripts/scaffold.py <book_dir> --style practical \
--title "제목" --subtitle "부제" --length short --author "저자" --date "2026-08"--length: short/standard/long — 쪽수 범위의 정본은 각 스타일 tokens.json의 length_pages(short는 스타일별 22~70쪽 대역, INV-1에 따라 산출물 쪽수는 WARN만). --brand "#hex"로 브랜드색 교체, --images vector|generated|none으로 이미지 정책(벡터만·생성 아트 포함·없음) 지정.
outline.json의 각 장에 file·title·summary(도비라에 실리는 1~2문장)를 채우고, chapters/ch-NN.md를 아래 문법만으로 쓴다:
# 장제목(파일당 1개, outline의 title과 일치) / ## 절 / ### 소제목**볼드**, 리스트, > 인용, GFM 표, ``` 코드블록 — 파일을 <book_dir>/assets/에 먼저 넣고, 반드시 ../assets/ 경로 + 이미지 단독 문단으로 쓴다(텍스트가 섞이면 조판에서 조용히 증발)diagrams/fig-NN.json(AntV DSL 사이드카) ② 기술도해(시퀀스·상태머신·ER·스위밍레인·간트 등)는 SVG를 직접 그려 diagrams/fig-NN.svg + 사이드카 {"kind":"authored"}. 빌드가 정규화해 assets/fig-NN.svg로 산출. 본문 참조는 . 작성 계약·타입 라우팅·커넥터 규칙·복잡도 예산은 references/diagrams.md가 정본::: tip 제목
내용 (stat은 첫 줄=수치, 둘째 줄=설명)
:::종류 info|tip|warn|quote|stat|pull(pull은 magazine 풀퀘트 — 본문에 실재하는 문장만, 없는 인용은 G10 하드 실패).
[표] 제목 | 자료: 출처 한 줄 — 이 줄을 준 표만 번호 라벨이 붙는다. 캡션 없는 표는 라벨 없이 렌더된다(자동 필러 캡션은 존재하지 않는다).stat의 수치는 같은 장 본문에 실재해야 한다(G10) — 박스에만 있는 숫자는 날조로 판정된다.표지·도비라용 생성 아트를 쓸 경우 references/art-policy.md를 읽고 따른다(무텍스트 원칙).
완료 기준: outline의 모든 장 파일이 존재하고, 각 파일 첫 줄이 # {title}이며, 분량 프리셋에 맞는 총 글자수(short 기준 본문 1.0만2.1만 자 = 장 57개 × 2,000~3,000자 — modes/topic.md와 동일 기준)를 갖춘다. 각 장의 toc_line(목차 전용 완결 카피 한 줄)을 채운다 — 없으면 summary 앞 40자가 잘려 실린다.
python3 <SKILL>/scripts/build.py <book_dir> # → draft/book.pdf
python3 <SKILL>/scripts/qc_gate.py <book_dir> # PASS 시에만 final/<slug>.pdf 생성게이트: G10 인용·수치 실재(렌더 전) / G0 도해 SVG 소스(렌더 전 — foreignObject·외부참조·단독문단·아이콘 탈락) / G1 렌더·판형(tokens trim_mm 대조)·본문 급수(tokens body_pt ±0.3pt — 전역 축소 차단)·분량범위(WARN — --strict-pages만 HARD) / G2 폰트 임베드+Type3 0 / G3 면 기하 3축(OVERFLOW 재단 밖 bbox 0 · COLLIDE 텍스트 라인 교차 0 · FIT 앞부속 텍스트가 tokens front_frame_mm 안) / G4 목차·북마크 정합 / G7 밀도(백면·꼬리 채움·판면 드리프트) / G8 공기 채움 / G9 제목 고립·widow / G11 사유 코드 무결성 / G12 필러 백면 / G13 도해 라벨 PDF 실재 / G17 도해 면 정합(figure가 한 면 안 — 면 분단·판면 초과·diagram.maxHeightMm 대조) / G14 목차·디자인 정합(인쇄 목차 쪽번호↔폴리오·목차↔도비라 색 계열·텍스트 대비 하한) / G16-TOKENS 스타일 팩 토큰 계약 3축(SYNC 색·수치 계약 정합 — palette_roles·front_frame_mm 선언값 타당성 포함 / CONTRAST 선언 페어의 WCAG 대비 / BRAND 브랜드 입력 사전 검증) / G16-LINT contrast_contract ↔ theme.css·렌더 DOM 실물 대조(html 엔진 한정 — pt 정합·값 커버리지는 HARD, 완전성은 WARN). 기준 수치와 대응법은 references/pagination.md가 정본이다.
실패 시 gate-report.json의 원인 항목만 고치고 재실행한다. 예외 — G16-TOKENS: 이 축만 build.py가 렌더 전에 그 자리에서 중단시키므로 그 시점엔 gate-report.json이 아직 없다(있다면 이전 실행의 낡은 파일이다). stderr에 찍힌 축·사유를 읽고 styles/<style>/tokens.json을 고칠 것 — 게이트 리포트를 찾지 말 것. 금지 대응: 분량 미달을 부록·용어집 추가로 메우기, 절별 강제 개면, 빈 줄·행간 확대로 면 채우기 — 전부 게이트가 다시 잡는다. 올바른 대응: G7 꼬리 미달은 python3 <SKILL>/scripts/refit.py <book_dir>(자간 미세조정 자동 탐색) → 해 없으면 문단 1~2개 국소 증감 또는 pageroles.json 사유 코드(의도된 여백 선언, G11이 진위 검증). 같은 게이트 3회 연속 실패면 원인을 사용자에게 보고한다.
python3 <SKILL>/scripts/contact_sheet.py <book_dir>/final/*.pdf <book_dir>/qc --dpi 90 --pages 1,2,3,4,5
# 게이트 실패를 진단할 때는 final/ 대신 draft/book.pdf 를 같은 방식으로 렌더해 본다표지·차례·도비라·본문 펼침면 PNG를 직접 열어 보고 판단한다: 글자 겹침 없음, 목차 쪽번호=실제 쪽, 도비라 스타일 성립, 본문 여백 리듬 정상. 이상이 있으면 콘텐츠(md)나 book.json을 고쳐 P2-4를 재실행한다. 파일이 생성되었다는 것은 완료가 아니다 — 눈으로 본 것만 완료다.
styles/<이름>/STYLE.md — 각 스타일의 전체 디자인 규칙서(집필 시 톤·구성 참고)© gongnyang, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 151 other files (scripts, references, assets) in the repository root of gongnyang/bookforge.
Open the folder on GitHubat commit 3f1e85e
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gongnyang/bookforge, which our catalogue first saw on October 7, 2026.
Bookforge Korean Ebook PDF Maker next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Bookforge Korean Ebook PDF Maker this skillgongnyang/bookforge | 316 | 1 repos | ~1.7k | Automated safety check: Pass | MIT | |
| Ky Markdown RebuilderKyrieCheungYep/ky-markdown-rebuilder | 117 | — | ~5.7k | Automated safety check: Pass | None | |
| Markdown to PDF Convertergarrytan/gstack | 136k | — | ~5.1k | Automated safety check: Notes | MIT | |
| Huashu Markdown Publishing Pipelinealchaincyf/huashu-md-html | 910 | — | ~4.8k | Automated safety check: Pass | MIT | |
| Markdown to HTML ReportMegaSuperKitty/WeClaw | 370 | — | ~456 | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 781 | 14 repos | ~3.2k | Automated safety check: Notes | MIT |
KyrieCheungYep/ky-markdown-rebuilder
Rebuild visual documents into reliable Markdown by combining text extraction with page or screenshot alignment.
garrytan/gstack
Renders a markdown file into a finished PDF with margins, page numbers, a cover page, running headers, a clickable table of contents and an optional DRAFT watermark.
alchaincyf/huashu-md-html
Converts files and web pages into clean Markdown, then turns Markdown into polished HTML, Word, PDF and EPUB using four templates.
MegaSuperKitty/WeClaw
Drafts a report in Markdown with numbered inline citations and a references section, then renders it to a styled HTML file through a Jinja2 template on Windows.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
isjiamu/gzh-design-skill
微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx) / PDF / 纯文本输入(非 Markdown…
Categories
Produces book-style Korean ebook PDFs from a topic or finished manuscript, with six design styles, real book parts and quality-check gates before output. Bookforge turns a one-line topic or a finished manuscript in md, txt or docx form into a PDF with the parts of a printed book: cover, table of contents, chapter openers, running heads and a colophon page. Content is written in Markdown only, typesetting is handled by style packs and scripts, and a QC gate keeps any PDF that fails its checks out of the final folder.
Bookforge Korean Ebook PDF Maker fits situations like: making a Korean ebook PDF from a topic; typesetting a finished manuscript into a book-style PDF; choosing among practical, essay, business or magazine layouts; producing a report PDF with a cover, contents page and running heads.
Run `npx skills add gongnyang/bookforge --skill bookforge -a claude-code`. Or copy the skill folder (the gongnyang/bookforge repository) into .claude/skills/bookforge in your project. Claude Code loads it when a task matches its description.
Run `npx skills add gongnyang/bookforge --skill bookforge -a codex`. Or copy the skill folder (the gongnyang/bookforge repository) into .agents/skills/bookforge in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gongnyang/bookforge --skill bookforge -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/bookforge, .gemini/skills/bookforge, .github/skills/bookforge and .opencode/skills/bookforge in your project.
Going by SKILL.md and its folder, Bookforge Korean Ebook PDF Maker needs the command-line tools its instructions call (python3, npm, node and npx). Our summary lists: Typst 0.14; Python 3 with PyMuPDF and markdown-it-py; Playwright with Chromium, for the insight and magazine styles.
SKILL.md contains no URLs. Its commands use npm and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Bookforge Korean Ebook PDF Maker is published under the MIT licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 61k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Bookforge Korean Ebook PDF Maker: Ky Markdown Rebuilder (KyrieCheungYep/ky-markdown-rebuilder, 117 stars), Markdown to PDF Converter (garrytan/gstack, 136k stars), Huashu Markdown Publishing Pipeline (alchaincyf/huashu-md-html, 910 stars) and Markdown to HTML Report (MegaSuperKitty/WeClaw, 370 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
gongnyang (a GitHub user) maintains it in gongnyang/bookforge, which has 316 GitHub stars. The repository was last updated on September 1, 2026.
Source: gongnyang/bookforge on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.