[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M73DWP59P47S1BXGA99JS3EB":3,"skill-same:01M73DWP59P47S1BXGA99JS3EB":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":6,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M73DWP59P47S1BXGA99JS3EB","prep-pdf",null,"Playwright-free PDF preparation. Reads lecture-profile.md, resolves the 4-layer spec merge, validates fonts, outputs a layout summary, and optionally generates a sample PDF. Replaces the deprecated measure skill (Playwright-dependent). Responds to \"prep for PDF\", \"estimate layout\", \"check PDF layout\". Stages 9-10 of the lecture workflow (simplified).","5throck\u002Fai-workspace-standards","5throck","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F10958964?v=4","01M73BFEH0V0VS483TW4JD49JW","01M73BFEJ5VQZJHJSFTVPAZGDM",25,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-deck\u002F.codex\u002Fskills\u002Fprep-pdf\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: prep-pdf\nscope: co-deck\nversion: 2.0.0\ndescription: >\n  Playwright-free PDF preparation. Reads lecture-profile.md, resolves the 4-layer\n  spec merge, validates fonts, outputs a layout summary, and optionally generates\n  a sample PDF. Replaces the deprecated measure skill (Playwright-dependent).\n  Responds to \"prep for PDF\", \"estimate layout\", \"check PDF layout\".\n  Stages 9-10 of the lecture workflow (simplified).\nstatus: active\nowner: pdf-export\nlast_reviewed: 2026-06-23\nprerequisites: html-build\nrelates_to:\n  - skill: version\n    type: follows\n---\n\n## Context\n\nPrepares the project for PDF generation without requiring Playwright. The previous\n`measure` skill used Playwright to measure rendered HTML, but its output was never\nconsumed by `gen-slides-pdf.ts`. The PDF renderer reads static theme JSON files via\na 4-layer merge (base → theme → style → overrides). This skill validates that all\npieces are in place and produces a summary of what the PDF will look like.\n\n## When to Use\n\n- PM Agent dispatches after Gate 4 (Build approval)\n- User says \"prep for PDF\", \"estimate layout\", \"check PDF layout\"\n- Before PDF export to verify fonts and spec merge\n\n---\n\n## Execution Steps\n\n### Step 1: Estimate Layout\n\n```bash\nbun scripts\u002Fco-deck\u002Festimate-layout.ts --project presentations\u002F\u003Cproject>\n```\n\nThis automatically:\n1. Reads `lecture-profile.md` (theme + style + layout_overrides)\n2. Loads the 4-layer spec merge (base → theme → style → overrides)\n3. Validates the merged spec has regions and slide types\n4. Checks font availability (Pretendard or MaruBuri)\n5. Outputs `layout_summary.md` to the project folder\n\nNo Playwright installation required.\n\n### Step 2: Font Download (if needed)\n\nIf the font check reports missing fonts:\n\n```bash\nbun scripts\u002Fco-deck\u002Fdownload-font.ts pretendard\n```\n\n### Step 3: (Optional) Auto-Calibrate (CSS Estimation)\n\nFor new themes or when tuning layout, generate estimated overrides from CSS:\n\n```bash\nbun scripts\u002Fco-deck\u002Fgen-slides-pdf.ts --auto-calibrate --project presentations\u002F\u003Cproject>\n```\n\nThis reads CSS custom properties and computes estimated `layout_overrides` values.\nCopy the printed YAML block into `lecture-profile.md`.\n\n### Step 4: (Optional) Iterative Calibration Loop\n\nFor precise layout tuning, run the numerical calibration loop:\n\n```bash\nbun scripts\u002Fco-deck\u002Fauto-calibrate.ts --project presentations\u002F\u003Cproject> --max-iter 3 --sample 5\n```\n\nThis generates a 5-page sample PDF, converts it to images (requires `pdf-to-png-converter` v4),\nnumerically validates font sizes and line heights, auto-adjusts `layout_overrides`, and repeats\nup to 3 iterations. After the loop, it prompts for user approval of the final values.\n\nIf `pdf-to-png-converter` is not installed, the step degrades gracefully — it still generates\nthe sample PDF and validates the spec merge, but skips image-based numerical validation.\n\n### Step 5: Generate Sample PDF\n\n```bash\nbun scripts\u002Fco-deck\u002Festimate-layout.ts --project presentations\u002F\u003Cproject> --sample\n```\n\nOr directly:\n```bash\nbun scripts\u002Fco-deck\u002Fgen-slides-pdf.ts --project presentations\u002F\u003Cproject> --sample 5\n```\n\n---\n\n## Output Format\n\n- `presentations\u002F\u003Cproject>\u002Flayout_summary.md` — spec merge summary (regions, fonts, sizes)\n- `presentations\u002F\u003Cproject>\u002Fsample_5slides.pdf` — sample for Gate 5 review (with --sample)\n- `presentations\u002F\u003Cproject>\u002Fcalibration_report.md` — iterative calibration results (with auto-calibrate.ts)\n\n## Key Differences from Deprecated `measure` Skill\n\n| Aspect | measure (deprecated) | prep-pdf (current) |\n|--------|---------------------|-------------------|\n| Playwright | Required | Not required |\n| Output | layout_spec.json (unused) | layout_summary.md (review reference) |\n| Screenshots | Yes (via Playwright) | No |\n| Spec merge | No | Yes (4-layer preview) |\n| Font check | Manual | Automatic |\n| Sample PDF | Separate step | Integrated (--sample flag) |\n\n## Related Skills\n\n- `html-build` — produces the HTML file\n- `pdf-export` — generates the final PDF (consumes the same 4-layer spec)\n- `version` — snapshot files before PDF regeneration\n","## Context\n\nPrepares the project for PDF generation without requiring Playwright. The previous\n`measure` skill used Playwright to measure rendered HTML, but its output was never\nconsumed by `gen-slides-pdf.ts`. The PDF renderer reads static theme JSON files via\na 4-layer merge (base → theme → style → overrides). This skill validates that all\npieces are in place and produces a summary of what the PDF will look like.\n\n## When to Use\n\n- PM Agent dispatches after Gate 4 (Build approval)\n- User says \"prep for PDF\", \"estimate layout\", \"check PDF layout\"\n- Before PDF export to verify fonts and spec merge\n\n---\n\n## Execution Steps\n\n### Step 1: Estimate Layout\n\n```bash\nbun scripts\u002Fco-deck\u002Festimate-layout.ts --project presentations\u002F\u003Cproject>\n```\n\nThis automatically:\n1. Reads `lecture-profile.md` (theme + style + layout_overrides)\n2. Loads the 4-layer spec merge (base → theme → style → overrides)\n3. Validates the merged spec has regions and slide types\n4. Checks font availability (Pretendard or MaruBuri)\n5. Outputs `layout_summary.md` to the project folder\n\nNo Playwright installation required.\n\n### Step 2: Font Download (if needed)\n\nIf the font check reports missing fonts:\n\n```bash\nbun scripts\u002Fco-deck\u002Fdownload-font.ts pretendard\n```\n\n### Step 3: (Optional) Auto-Calibrate (CSS Estimation)\n\nFor new themes or when tuning layout, generate estimated overrides from CSS:\n\n```bash\nbun scripts\u002Fco-deck\u002Fgen-slides-pdf.ts --auto-calibrate --project presentations\u002F\u003Cproject>\n```\n\nThis reads CSS custom properties and computes estimated `layout_overrides` values.\nCopy the printed YAML block into `lecture-profile.md`.\n\n### Step 4: (Optional) Iterative Calibration Loop\n\nFor precise layout tuning, run the numerical calibration loop:\n\n```bash\nbun scripts\u002Fco-deck\u002Fauto-calibrate.ts --project presentations\u002F\u003Cproject> --max-iter 3 --sample 5\n```\n\nThis generates a 5-page sample PDF, converts it to images (requires `pdf-to-png-converter` v4),\nnumerically validates font sizes and line heights, auto-adjusts `layout_overrides`, and repeats\nup to 3 iterations. After the loop, it prompts for user approval of the final values.\n\nIf `pdf-to-png-converter` is not installed, the step degrades gracefully — it still generates\nthe sample PDF and validates the spec merge, but skips image-based numerical validation.\n\n### Step 5: Generate Sample PDF\n\n```bash\nbun scripts\u002Fco-deck\u002Festimate-layout.ts --project presentations\u002F\u003Cproject> --sample\n```\n\nOr directly:\n```bash\nbun scripts\u002Fco-deck\u002Fgen-slides-pdf.ts --project presentations\u002F\u003Cproject> --sample 5\n```\n\n---\n\n## Output Format\n\n- `presentations\u002F\u003Cproject>\u002Flayout_summary.md` — spec merge summary (regions, fonts, sizes)\n- `presentations\u002F\u003Cproject>\u002Fsample_5slides.pdf` — sample for Gate 5 review (with --sample)\n- `presentations\u002F\u003Cproject>\u002Fcalibration_report.md` — iterative calibration results (with auto-calibrate.ts)\n\n## Key Differences from Deprecated `measure` Skill\n\n| Aspect | measure (deprecated) | prep-pdf (current) |\n|--------|---------------------|-------------------|\n| Playwright | Required | Not required |\n| Output | layout_spec.json (unused) | layout_summary.md (review reference) |\n| Screenshots | Yes (via Playwright) | No |\n| Spec merge | No | Yes (4-layer preview) |\n| Font check | Manual | Automatic |\n| Sample PDF | Separate step | Integrated (--sample flag) |\n\n## Related Skills\n\n- `html-build` — produces the HTML file\n- `pdf-export` — generates the final PDF (consumes the same 4-layer spec)\n- `version` — snapshot files before PDF regeneration\n",{"name":5,"owner":23,"scope":24,"status":25,"version":26,"relates_to":27,"description":31,"last_reviewed":32,"prerequisites":33},"pdf-export","co-deck","active","2.0.0",[28],{"type":29,"skill":30},"follows","version","Playwright-free PDF preparation. Reads lecture-profile.md, resolves the 4-layer spec merge, validates fonts, outputs a layout summary, and optionally generates a sample PDF. Replaces the deprecated measure skill (Playwright-dependent). Responds to \"prep for PDF\", \"estimate layout\", \"check PDF layout\". Stages 9-10 of the lecture workflow (simplified).\n",1782172800000,"html-build","main","1162ccc568cf90c01b3886d6143cbfd851a37883","templates\u002Fco-deck\u002F.codex\u002Fskills\u002Fprep-pdf",9,"https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards","https:\u002F\u002Fgithub.com\u002F5throck","Experienced in digital transformation, enterprise IT, startup acceleration, and business strategy. Focused on building practical systems that connect technolo","2026-11-14 21:22:34",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add 5throck\u002Fai-workspace-standards --skill prep-pdf",{"tool":48,"command":49},"bunx","bunx skills add 5throck\u002Fai-workspace-standards --skill prep-pdf",{"tool":51,"command":52},"pnpm","pnpm dlx skills add 5throck\u002Fai-workspace-standards --skill prep-pdf","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-deck\u002F.codex\u002Fskills\u002Fprep-pdf\u002FSKILL.md",true,[],[57,65,70,75,80,85],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":64},"01M7BBJDYHJMGTJYSC37JVWY8S","i18n-layout","Text layout and encoding guidance: character encoding (UTF-8, legacy Korean code pages, BOM hazards), line endings, RTL\u002Fbidi handling, and script-specific font selection (Hangul focus). Use when: encoding is corrupted or mojibake appears, an RTL locale must render correctly, fonts must be chosen for a script, or CRLF\u002FBOM issues surface.","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],"2026-11-15 14:19:17",{"skillNo":66,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":67,"categories":68,"keywords":69,"publishedAt":64},"01M7BBJ9XHAAS1AVGKZZ841VBZ","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.hermes\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":71,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"publishedAt":64},"01M7BBJ5C3X8TKFKG5R9P9P49W","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.gemini\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":76,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"publishedAt":64},"01M7BBJ1B52X0QMJ2QVBMPJB37","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.codex\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":81,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":64},"01M7BBHX91BW2Q2R276MRX5AW3","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.claude\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[],{"skillNo":86,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":64},"01M7BBHQWGXPSFRWN1PRC2NMMV","https:\u002F\u002Fgithub.com\u002F5throck\u002Fai-workspace-standards\u002Fblob\u002Fmain\u002Ftemplates\u002Fco-work\u002F.agents\u002Fskills\u002Fi18n-layout\u002FSKILL.md",[],[]]