[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71NF8H6CTCKK99NYH712G8Q":3,"skill-same:01M71NF8H6CTCKK99NYH712G8Q":437},{"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":15,"sourceHtmlUrl":16,"categories":17,"keywords":34,"publishedAt":55,"linkOnly":56,"markdownContent":57,"markdownBody":58,"frontMatter":59,"refName":61,"commitSha":62,"skillDirectory":63,"forksCount":13,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":66,"ownerDescription":67,"updatedAt":68,"install":69,"resources":82},"01M71NF8H6CTCKK99NYH712G8Q","frontend-slides",null,"Create, convert, or revise browser-based 16:9 HTML slide decks, including PPT\u002FPPTX conversion, Chinese\u002FCJK typography, and PDF export. Use when the user asks for a presentation, slide deck, pitch or talk slides, or wants an existing HTML deck changed. Not for ordinary websites, landing pages, written documents, or summarizing an existing presentation.","SikongJueluo\u002Fskills","SikongJueluo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F53223107?v=4","01M71NEWK46KJB0R64SBCD990Z","01M71NEWKPCXWFQFMNTXW5ZYQN",0,"MIT","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002FSKILL.md",[18,23,26,29],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":30,"categoryName":31,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54],"frontend","frontend slides","slides","html deck","conversion","convert","when","documents","pitch","Existing","use","pages","slide decks","landing","deck","pdf export","for","chinese","pptx","PDF","2026-11-10 10:56:23",false,"---\nname: frontend-slides\ndescription: Create, convert, or revise browser-based 16:9 HTML slide decks, including PPT\u002FPPTX conversion, Chinese\u002FCJK typography, and PDF export. Use when the user asks for a presentation, slide deck, pitch or talk slides, or wants an existing HTML deck changed. Not for ordinary websites, landing pages, written documents, or summarizing an existing presentation.\nargument-hint: \"[deck request, .pptx path, or existing HTML deck]\"\n---\n\n# \u002Ffrontend-slides\n\nBuild a presentation that runs in a browser: one fixed 1920×1080 stage, scaled as a whole, with no build step. A deck is a folder:\n\n```text\n\u003Cdeck>\u002Findex.html\n\u003Cdeck>\u002Fassets\u002F...\n```\n\nAll paths in this skill are relative to **this skill directory**. Resolve that directory before reading support files or running scripts; do not assume the current working directory is the skill root.\n\n## Non-negotiables\n\n- **Fixed stage.** Every slide is authored at 1920×1080 inside one stage that scales uniformly. Letterbox or pillarbox on other aspect ratios; never reflow slide content for phones.\n- **Visibility contract.** Switch slides with `.active` \u002F `.visible` on `.slide`; never `display: none` for slide switching. Include the full contents of [viewport-base.css](viewport-base.css) in every generated deck.\n- **One runtime.** Generated decks use the inline controller in [html-template.md](html-template.md). Do not mix in a second navigation component or a second stage scaler.\n- **No build step.** CSS and JS stay inline in the HTML. Images normally live in `assets\u002F`; only inline them when the user asks for a portable single file.\n- **Progressive disclosure.** Read `selection-index.json` before template metadata, `preview.md` before a full `design.md`, and exactly one selected `design.md` when generating.\n- **Honest delivery.** Do not claim a browser, screenshot, PDF, or deployment was verified unless it was.\n\n## 1. Classify the request\n\n- **New deck** — create from the brief in steps 2–4.\n- **PPT\u002FPPTX conversion** — extract first; use [references\u002Fpptx.md](references\u002Fpptx.md), then continue with steps 2–4.\n- **Revise an existing HTML deck** — read the deck and its assets before editing; follow \"Changing an existing deck\" below.\n- **Export only** — go straight to [references\u002Fpdf.md](references\u002Fpdf.md).\n- **Share or publish** — only when the user explicitly asks; use [references\u002Fdeploy.md](references\u002Fdeploy.md).\n\nReuse every fact the user already supplied: topic, audience, length, content, language, visual direction, and file path. Do not ask again. Ask one compact batch only for facts that block the work.\n\n## 2. Brief\n\nAsk in one message, with numbered choices when no structured question UI is available:\n\n1. **Purpose and audience** — pitch, teaching, conference, internal review, etc.\n2. **Length** — short 5–10, medium 10–20, long 20+ slides.\n3. **Content** — ready, rough notes, or topic only. Ask the user to share the material.\n4. **Density** — low-density\u002Fspeaker-led or high-density\u002Freading-first.\n5. **Language** — only if the deck language is not obvious from the request.\n6. **Images** — only if the request mentions or supplies them.\n\nNever ask about inline editing before a draft exists. Include it by default; omit it only when the user asks for a locked or export-only file.\n\nDefault the output to `.\u002F\u003Cdeck-slug>\u002Findex.html` plus `assets\u002F` unless the user named a path. Completion: mode, output path, content, density, and language are known.\n\n## 3. Choose the direction\n\nA constraint is not a choice. \"Light background, dark text, large type\" can shape a recommendation; it does not mean a preset has been selected.\n\nGenerate without a preview round only when the user:\n\n- names a preset, template, reference deck, or visual direction, and asks to use it — use it and say which;\n- already chose a direction in this conversation or in the supplied material;\n- delegates the choice (\"you decide\", \"no need to ask\").\n\nIf the record is ambiguous — a passing reference, a constraint, or an earlier agent's suggestion — confirm the direction before generating. If none of those paths applies, run visual exploration. Recommend a direction, but let the user choose it; people choose design by seeing it, not by naming templates.\n\nFor exploration:\n\n1. Read [STYLE_PRESETS.md](STYLE_PRESETS.md) and the metadata in [bold-template-pack\u002Fselection-index.json](bold-template-pack\u002Fselection-index.json).\n2. Shortlist 2–4 candidates matched to occasion, audience, content, density, and any stated constraints. Read only those candidates' `preview.md`. Use volunteered taste (a reference, a disliked look, a brand rule) to shape the shortlist, not as a substitute for a choice.\n3. Build three genuinely different title slides with the deck's real title and subtitle: one safe preset, one bold template, one wildcard (another bold template or a custom design). When the material supports only two distinct directions, build two. They must be different design ideas, not one idea in three colors.\n4. Save them under `\u003Cdeck>\u002F.previews\u002F` as `style-a.html`, `style-b.html`, `style-c.html`. Show them with the agent's browser\u002Fimage\u002Ffile-present capability; if none exists, deliver the paths and ask the user to open them.\n5. Ask which direction to use. If \"mix\", ask what to combine.\n\nPreview rules:\n\n- Each preview is one title slide, not a mini deck: build the shared stage and that slide only.\n- Each preview must look like a real first slide of this deck, not a diagnostic card.\n- Never render template names, slugs, `preview`, `Option A\u002FB\u002FC`, file names, paths, or requirement notes on the slide. Names belong in the chat message only.\n- Do not force every expressive option to come from the template pack.\n- If a preview uses an image or logo, inspect the actual file first; see [references\u002Fdesign-review.md](references\u002Fdesign-review.md).\n- Delete `.previews\u002F` after the user chooses.\n\nAfter the choice, build the hardest representative body page (the one with the most content, an image, a table, or a comparison) in the chosen direction before the rest of the deck. Show it to the user when the deck contains supplied images, tables, charts, or a dense comparison, or when the user asked to review the design — unless the user delegated the direction and asked not to be consulted. Otherwise use it as your own check.\n\nCompletion: the user has chosen a direction, or explicitly named one or delegated the choice; any bold template's single `design.md` path is known; and the representative body page is built in the chosen direction with its content fitting.\n\n## 4. Generate the deck\n\nRead these before writing HTML:\n\n- [viewport-base.css](viewport-base.css) — paste it in full into `\u003Cstyle>`.\n- [html-template.md](html-template.md) — structure, controller, editing, export contract.\n- [animation-patterns.md](animation-patterns.md) — only the patterns that fit the chosen direction.\n- The selected bold template's `design.md` — exactly one, only after selection.\n- [references\u002Fdesign-review.md](references\u002Fdesign-review.md) — image truth, page composition, and whole-deck review. Read the image and composition sections before placing assets, and the whole file before delivery.\n\nFor a `design.md`, treat `vw`, `vh`, and `clamp()` as design proportions to translate into 1920×1080 coordinates. Preserve its fonts, palette, decorative vocabulary, spacing rhythm, and component grammar; do not copy demo content. Generate the same visual system for every slide type the deck needs.\n\nThe same fidelity applies to a named preset or a custom direction: keep its palette, type roles, and layout grammar across slide types. Make at least one decision that comes from this deck's subject — a type treatment, an image treatment, a layout move — rather than the template's demo defaults. Distinctive means specific to the material, not more decoration.\n\nApply the density choice throughout:\n\n- **Low density \u002F speaker-led:** one idea per slide, large type, short phrases, more slides.\n- **High density \u002F reading-first:** structured grids, tables, annotations, 4–8 bullets or 4–6 cards where readable.\n\nSplit into another slide instead of shrinking text or letting panels overlap.\n\n### Content and images are claims\n\n- Use only facts, numbers, quotes, and examples from the supplied material or a cited source. Do not fill gaps with plausible detail; mark an inference as one or cut it.\n- An example must demonstrate the claim beside it. If the image or example shows something else, change the example or the claim.\n- Open every image you place and describe what it actually shows. Match the caption and alt text to that description. A filename, search result, or your own alt text is not inspection.\n- If you cannot view images, delegate the check to an agent that can, or ask the user. If neither is available, report the image check as unverified. Do not claim an image was verified from metadata.\n\n### Compose for the audience\n\n- Give each slide one job and one focal point. When a title, claim, explanation, image, speaker prompt, and conclusion all compete, split the slide or cut.\n- Decoration must do a content or structural job. Repeated frames, labels, numbers, chips, and rules that would fit any deck are template habit, not design.\n- The slide surface belongs to the audience. Put talk track, timing, facilitation prompts, and reminders in HTML comments or a separate notes file, not in visible chrome, unless the user asked for a teaching handout that shows them.\n- The closing slide makes one closing move. Do not pile summary, quote, call to action, and thanks onto it.\n\n### Chinese and CJK decks\n\n- Set `\u003Chtml lang=\"zh-CN\">` (or the correct locale) and keep the file UTF-8.\n- Use a distinctive Latin display face if the design calls for one, but always provide a CJK stack, for example `\"Noto Sans SC\", \"Source Han Sans SC\", \"LXGW WenKai\", sans-serif` or `\"Noto Serif SC\", \"Source Han Serif SC\", \"Songti SC\", serif`.\n- CJK runs get `letter-spacing: 0`. If a design uses negative tracking for Latin display type, scope it to a Latin-only class; never apply it to Chinese.\n- Use generous line height: about `1.7–1.9` for body text and `1.2–1.35` for headings. Avoid weight 300 for small Chinese text and avoid faux bold\u002Fitalic.\n- Do not uppercase or italicize Chinese text. Use Chinese punctuation in Chinese sentences and keep mixed CJK\u002FLatin spacing readable.\n- Keep body text at roughly 24px or larger on the 1920×1080 stage; table and caption text at roughly 22px or larger. Split the slide if that does not fit.\n- Add `overflow-wrap: anywhere` for long URLs and mixed tokens, then check actual line breaks in a rendered screenshot.\n\n### Output contract\n\n- `index.html` with CSS\u002FJS inline; `assets\u002F` for images unless the user asks for one portable file.\n- Include the full viewport CSS, the export contract (`?export=1` and `window.deck`), and the inline editor by default.\n- Remote fonts are allowed. Tell the user that a deck relying on Fontshare\u002FGoogle Fonts may fall back when offline; only claim a portable\u002Foffline file after inlining the required resources and checking for remaining external references.\n- No placeholder text, lorem ipsum, empty sections, or broken image paths.\n\nCompletion: every requested slide exists, all supplied content is traceable, every placed image was opened and matches its caption and alt text (or the image check is explicitly reported unverified), and the deck opens.\n\n## 5. Verify\n\nRun three passes. Technical checks cannot substitute for content truth or design.\n\n### Content truth\n\n- Every claim, number, name, and quotation traces to the supplied material or a cited source; an inference is marked as one or removed.\n- Every image that carries or is captioned as evidence shows what the slide says it shows. Open the file, compare it with the sentence, caption, and alt text, and replace or remove it when they differ.\n- Speaker-only text is not visible in the audience view.\n\n### Design\n\nRead [references\u002Fdesign-review.md](references\u002Fdesign-review.md) and apply its checks:\n\n- each slide's job, focal point, and reading order;\n- the image-text relationship and caption placement;\n- the decoration audit: every repeated element earns its place;\n- pacing across the deck and a single closing move;\n- consistency with the chosen direction, including presets and custom designs.\n\nWhen the user says the deck looks generic or \"AI-looking\", diagnose the visual system and information hierarchy first. Fix by cutting and re-ranking content, not by adding decoration.\n\n### Technical\n\nUse the exporter's screenshot mode when Node and Chromium\u002FChrome are available:\n\n```bash\nnode scripts\u002Fexport-pdf.mjs \u003Cdeck>\u002Findex.html --png-dir \u002Ftmp\u002Fdeck-shots --viewport 1280x720\nnode scripts\u002Fexport-pdf.mjs \u003Cdeck>\u002Findex.html --png-dir \u002Ftmp\u002Fdeck-phone --viewport 390x844\n```\n\nInspect the PNGs — actually look at them, not just at file sizes. Then check:\n\n- The stage stays 16:9 and scales uniformly; the phone view letterboxes instead of reflowing.\n- No clipped headings, overflowing cards, overlapping panels, or text below comfortable size.\n- Chinese glyphs render, line breaks are sensible, and tracking is not negative.\n- Tables and comparison layouts are readable.\n- The exporter reports no broken images or 1920×1080 overflow warnings, and\n  `.reveal` elements are visible in the captured final state.\n- Navigation works, and typing in the editor does not change slides.\n- `Ctrl\u002FCmd+S` downloads a cleaned copy and does not write back to the source file.\n  If you test it, move the download into the deck folder next to `assets\u002F`\n  before reopening; a copy left in Downloads cannot load the deck's images.\n\nIf no browser or screenshot capability exists, say exactly that and report which checks remain unverified.\n\nCompletion: all three passes are complete; every slide is inspected at desktop and phone sizes, every image opened, and any check that could not be performed is named.\n\n## 6. Deliver\n\nReport the deck path, slide count, style name, navigation keys, and how editing works. If the user delegated the direction, name the basis for the choice. Mention that browser save downloads a new HTML file rather than overwriting the source, that images live in `assets\u002F`, and that the downloaded file must be moved into the deck folder next to `assets\u002F` before it is reopened or exported.\n\nUse the agent's file-present or open capability when available; otherwise give the path. Never assume macOS `open`, a desktop session, or a GUI browser.\n\nDo not offer or perform public deployment as part of normal delivery. If the user asks to share it publicly, read [references\u002Fdeploy.md](references\u002Fdeploy.md) and obtain explicit consent before uploading.\n\n## Changing an existing deck\n\nIf the change replaces the visual direction rather than preserving it, run step 3 first.\n\n1. Read the HTML, the viewport CSS, and the current slide structure before editing. Preserve the existing design system.\n2. Keep the fixed-stage model. When new content would overflow, split the slide or tighten the layout; do not add responsive breakpoints or shrink text.\n3. Preserve the deck's existing runtime if it works. If it lacks `window.deck`, the exporter falls back to toggling `.slide.active\u002F.visible`; check that the deck uses those classes.\n4. Re-run the verification in step 5 after the change, including at least one phone viewport.\n5. Do not refactor unrelated markup or restyle other slides.\n6. When adding content or images, apply the content-truth checks in steps 4–5.\n\n## Supporting files\n\n| File | Purpose | Read when |\n| --- | --- | --- |\n| [STYLE_PRESETS.md](STYLE_PRESETS.md) | 12 original presets with colors, fonts, signature elements | style exploration |\n| [bold-template-pack\u002Fselection-index.json](bold-template-pack\u002Fselection-index.json) | Compact metadata for 34 bold templates | shortlisting |\n| [bold-template-pack\u002Ftemplates\u002F*\u002Fpreview.md](bold-template-pack\u002Ftemplates\u002F) | Title-slide preview cards | only for shortlisted candidates |\n| [bold-template-pack\u002Ftemplates\u002F*\u002Fdesign.md](bold-template-pack\u002Ftemplates\u002F) | Full design system | only the selected template |\n| [viewport-base.css](viewport-base.css) | Mandatory fixed-stage CSS | every generation |\n| [html-template.md](html-template.md) | HTML structure, controller, editor, export contract | every generation |\n| [animation-patterns.md](animation-patterns.md) | Animation snippets and effect-to-feeling guide | when motion matters |\n| [references\u002Fdesign-review.md](references\u002Fdesign-review.md) | Image truth, page composition, decoration, and whole-deck checks | every delivery; image-heavy decks and generic\u002FAI-look feedback |\n| [references\u002Fpptx.md](references\u002Fpptx.md) | PPTX extraction and conversion | PPT\u002FPPTX input |\n| [references\u002Fpdf.md](references\u002Fpdf.md) | Screenshot-based PDF export | PDF requested |\n| [references\u002Fdeploy.md](references\u002Fdeploy.md) | Public sharing checklist | user explicitly asks to publish |\n| [UPSTREAM.md](UPSTREAM.md) | Pinned upstream commit, imported scope, local changes | maintenance and upgrades |\n","# \u002Ffrontend-slides\n\nBuild a presentation that runs in a browser: one fixed 1920×1080 stage, scaled as a whole, with no build step. A deck is a folder:\n\n```text\n\u003Cdeck>\u002Findex.html\n\u003Cdeck>\u002Fassets\u002F...\n```\n\nAll paths in this skill are relative to **this skill directory**. Resolve that directory before reading support files or running scripts; do not assume the current working directory is the skill root.\n\n## Non-negotiables\n\n- **Fixed stage.** Every slide is authored at 1920×1080 inside one stage that scales uniformly. Letterbox or pillarbox on other aspect ratios; never reflow slide content for phones.\n- **Visibility contract.** Switch slides with `.active` \u002F `.visible` on `.slide`; never `display: none` for slide switching. Include the full contents of [viewport-base.css](viewport-base.css) in every generated deck.\n- **One runtime.** Generated decks use the inline controller in [html-template.md](html-template.md). Do not mix in a second navigation component or a second stage scaler.\n- **No build step.** CSS and JS stay inline in the HTML. Images normally live in `assets\u002F`; only inline them when the user asks for a portable single file.\n- **Progressive disclosure.** Read `selection-index.json` before template metadata, `preview.md` before a full `design.md`, and exactly one selected `design.md` when generating.\n- **Honest delivery.** Do not claim a browser, screenshot, PDF, or deployment was verified unless it was.\n\n## 1. Classify the request\n\n- **New deck** — create from the brief in steps 2–4.\n- **PPT\u002FPPTX conversion** — extract first; use [references\u002Fpptx.md](references\u002Fpptx.md), then continue with steps 2–4.\n- **Revise an existing HTML deck** — read the deck and its assets before editing; follow \"Changing an existing deck\" below.\n- **Export only** — go straight to [references\u002Fpdf.md](references\u002Fpdf.md).\n- **Share or publish** — only when the user explicitly asks; use [references\u002Fdeploy.md](references\u002Fdeploy.md).\n\nReuse every fact the user already supplied: topic, audience, length, content, language, visual direction, and file path. Do not ask again. Ask one compact batch only for facts that block the work.\n\n## 2. Brief\n\nAsk in one message, with numbered choices when no structured question UI is available:\n\n1. **Purpose and audience** — pitch, teaching, conference, internal review, etc.\n2. **Length** — short 5–10, medium 10–20, long 20+ slides.\n3. **Content** — ready, rough notes, or topic only. Ask the user to share the material.\n4. **Density** — low-density\u002Fspeaker-led or high-density\u002Freading-first.\n5. **Language** — only if the deck language is not obvious from the request.\n6. **Images** — only if the request mentions or supplies them.\n\nNever ask about inline editing before a draft exists. Include it by default; omit it only when the user asks for a locked or export-only file.\n\nDefault the output to `.\u002F\u003Cdeck-slug>\u002Findex.html` plus `assets\u002F` unless the user named a path. Completion: mode, output path, content, density, and language are known.\n\n## 3. Choose the direction\n\nA constraint is not a choice. \"Light background, dark text, large type\" can shape a recommendation; it does not mean a preset has been selected.\n\nGenerate without a preview round only when the user:\n\n- names a preset, template, reference deck, or visual direction, and asks to use it — use it and say which;\n- already chose a direction in this conversation or in the supplied material;\n- delegates the choice (\"you decide\", \"no need to ask\").\n\nIf the record is ambiguous — a passing reference, a constraint, or an earlier agent's suggestion — confirm the direction before generating. If none of those paths applies, run visual exploration. Recommend a direction, but let the user choose it; people choose design by seeing it, not by naming templates.\n\nFor exploration:\n\n1. Read [STYLE_PRESETS.md](STYLE_PRESETS.md) and the metadata in [bold-template-pack\u002Fselection-index.json](bold-template-pack\u002Fselection-index.json).\n2. Shortlist 2–4 candidates matched to occasion, audience, content, density, and any stated constraints. Read only those candidates' `preview.md`. Use volunteered taste (a reference, a disliked look, a brand rule) to shape the shortlist, not as a substitute for a choice.\n3. Build three genuinely different title slides with the deck's real title and subtitle: one safe preset, one bold template, one wildcard (another bold template or a custom design). When the material supports only two distinct directions, build two. They must be different design ideas, not one idea in three colors.\n4. Save them under `\u003Cdeck>\u002F.previews\u002F` as `style-a.html`, `style-b.html`, `style-c.html`. Show them with the agent's browser\u002Fimage\u002Ffile-present capability; if none exists, deliver the paths and ask the user to open them.\n5. Ask which direction to use. If \"mix\", ask what to combine.\n\nPreview rules:\n\n- Each preview is one title slide, not a mini deck: build the shared stage and that slide only.\n- Each preview must look like a real first slide of this deck, not a diagnostic card.\n- Never render template names, slugs, `preview`, `Option A\u002FB\u002FC`, file names, paths, or requirement notes on the slide. Names belong in the chat message only.\n- Do not force every expressive option to come from the template pack.\n- If a preview uses an image or logo, inspect the actual file first; see [references\u002Fdesign-review.md](references\u002Fdesign-review.md).\n- Delete `.previews\u002F` after the user chooses.\n\nAfter the choice, build the hardest representative body page (the one with the most content, an image, a table, or a comparison) in the chosen direction before the rest of the deck. Show it to the user when the deck contains supplied images, tables, charts, or a dense comparison, or when the user asked to review the design — unless the user delegated the direction and asked not to be consulted. Otherwise use it as your own check.\n\nCompletion: the user has chosen a direction, or explicitly named one or delegated the choice; any bold template's single `design.md` path is known; and the representative body page is built in the chosen direction with its content fitting.\n\n## 4. Generate the deck\n\nRead these before writing HTML:\n\n- [viewport-base.css](viewport-base.css) — paste it in full into `\u003Cstyle>`.\n- [html-template.md](html-template.md) — structure, controller, editing, export contract.\n- [animation-patterns.md](animation-patterns.md) — only the patterns that fit the chosen direction.\n- The selected bold template's `design.md` — exactly one, only after selection.\n- [references\u002Fdesign-review.md](references\u002Fdesign-review.md) — image truth, page composition, and whole-deck review. Read the image and composition sections before placing assets, and the whole file before delivery.\n\nFor a `design.md`, treat `vw`, `vh`, and `clamp()` as design proportions to translate into 1920×1080 coordinates. Preserve its fonts, palette, decorative vocabulary, spacing rhythm, and component grammar; do not copy demo content. Generate the same visual system for every slide type the deck needs.\n\nThe same fidelity applies to a named preset or a custom direction: keep its palette, type roles, and layout grammar across slide types. Make at least one decision that comes from this deck's subject — a type treatment, an image treatment, a layout move — rather than the template's demo defaults. Distinctive means specific to the material, not more decoration.\n\nApply the density choice throughout:\n\n- **Low density \u002F speaker-led:** one idea per slide, large type, short phrases, more slides.\n- **High density \u002F reading-first:** structured grids, tables, annotations, 4–8 bullets or 4–6 cards where readable.\n\nSplit into another slide instead of shrinking text or letting panels overlap.\n\n### Content and images are claims\n\n- Use only facts, numbers, quotes, and examples from the supplied material or a cited source. Do not fill gaps with plausible detail; mark an inference as one or cut it.\n- An example must demonstrate the claim beside it. If the image or example shows something else, change the example or the claim.\n- Open every image you place and describe what it actually shows. Match the caption and alt text to that description. A filename, search result, or your own alt text is not inspection.\n- If you cannot view images, delegate the check to an agent that can, or ask the user. If neither is available, report the image check as unverified. Do not claim an image was verified from metadata.\n\n### Compose for the audience\n\n- Give each slide one job and one focal point. When a title, claim, explanation, image, speaker prompt, and conclusion all compete, split the slide or cut.\n- Decoration must do a content or structural job. Repeated frames, labels, numbers, chips, and rules that would fit any deck are template habit, not design.\n- The slide surface belongs to the audience. Put talk track, timing, facilitation prompts, and reminders in HTML comments or a separate notes file, not in visible chrome, unless the user asked for a teaching handout that shows them.\n- The closing slide makes one closing move. Do not pile summary, quote, call to action, and thanks onto it.\n\n### Chinese and CJK decks\n\n- Set `\u003Chtml lang=\"zh-CN\">` (or the correct locale) and keep the file UTF-8.\n- Use a distinctive Latin display face if the design calls for one, but always provide a CJK stack, for example `\"Noto Sans SC\", \"Source Han Sans SC\", \"LXGW WenKai\", sans-serif` or `\"Noto Serif SC\", \"Source Han Serif SC\", \"Songti SC\", serif`.\n- CJK runs get `letter-spacing: 0`. If a design uses negative tracking for Latin display type, scope it to a Latin-only class; never apply it to Chinese.\n- Use generous line height: about `1.7–1.9` for body text and `1.2–1.35` for headings. Avoid weight 300 for small Chinese text and avoid faux bold\u002Fitalic.\n- Do not uppercase or italicize Chinese text. Use Chinese punctuation in Chinese sentences and keep mixed CJK\u002FLatin spacing readable.\n- Keep body text at roughly 24px or larger on the 1920×1080 stage; table and caption text at roughly 22px or larger. Split the slide if that does not fit.\n- Add `overflow-wrap: anywhere` for long URLs and mixed tokens, then check actual line breaks in a rendered screenshot.\n\n### Output contract\n\n- `index.html` with CSS\u002FJS inline; `assets\u002F` for images unless the user asks for one portable file.\n- Include the full viewport CSS, the export contract (`?export=1` and `window.deck`), and the inline editor by default.\n- Remote fonts are allowed. Tell the user that a deck relying on Fontshare\u002FGoogle Fonts may fall back when offline; only claim a portable\u002Foffline file after inlining the required resources and checking for remaining external references.\n- No placeholder text, lorem ipsum, empty sections, or broken image paths.\n\nCompletion: every requested slide exists, all supplied content is traceable, every placed image was opened and matches its caption and alt text (or the image check is explicitly reported unverified), and the deck opens.\n\n## 5. Verify\n\nRun three passes. Technical checks cannot substitute for content truth or design.\n\n### Content truth\n\n- Every claim, number, name, and quotation traces to the supplied material or a cited source; an inference is marked as one or removed.\n- Every image that carries or is captioned as evidence shows what the slide says it shows. Open the file, compare it with the sentence, caption, and alt text, and replace or remove it when they differ.\n- Speaker-only text is not visible in the audience view.\n\n### Design\n\nRead [references\u002Fdesign-review.md](references\u002Fdesign-review.md) and apply its checks:\n\n- each slide's job, focal point, and reading order;\n- the image-text relationship and caption placement;\n- the decoration audit: every repeated element earns its place;\n- pacing across the deck and a single closing move;\n- consistency with the chosen direction, including presets and custom designs.\n\nWhen the user says the deck looks generic or \"AI-looking\", diagnose the visual system and information hierarchy first. Fix by cutting and re-ranking content, not by adding decoration.\n\n### Technical\n\nUse the exporter's screenshot mode when Node and Chromium\u002FChrome are available:\n\n```bash\nnode scripts\u002Fexport-pdf.mjs \u003Cdeck>\u002Findex.html --png-dir \u002Ftmp\u002Fdeck-shots --viewport 1280x720\nnode scripts\u002Fexport-pdf.mjs \u003Cdeck>\u002Findex.html --png-dir \u002Ftmp\u002Fdeck-phone --viewport 390x844\n```\n\nInspect the PNGs — actually look at them, not just at file sizes. Then check:\n\n- The stage stays 16:9 and scales uniformly; the phone view letterboxes instead of reflowing.\n- No clipped headings, overflowing cards, overlapping panels, or text below comfortable size.\n- Chinese glyphs render, line breaks are sensible, and tracking is not negative.\n- Tables and comparison layouts are readable.\n- The exporter reports no broken images or 1920×1080 overflow warnings, and\n  `.reveal` elements are visible in the captured final state.\n- Navigation works, and typing in the editor does not change slides.\n- `Ctrl\u002FCmd+S` downloads a cleaned copy and does not write back to the source file.\n  If you test it, move the download into the deck folder next to `assets\u002F`\n  before reopening; a copy left in Downloads cannot load the deck's images.\n\nIf no browser or screenshot capability exists, say exactly that and report which checks remain unverified.\n\nCompletion: all three passes are complete; every slide is inspected at desktop and phone sizes, every image opened, and any check that could not be performed is named.\n\n## 6. Deliver\n\nReport the deck path, slide count, style name, navigation keys, and how editing works. If the user delegated the direction, name the basis for the choice. Mention that browser save downloads a new HTML file rather than overwriting the source, that images live in `assets\u002F`, and that the downloaded file must be moved into the deck folder next to `assets\u002F` before it is reopened or exported.\n\nUse the agent's file-present or open capability when available; otherwise give the path. Never assume macOS `open`, a desktop session, or a GUI browser.\n\nDo not offer or perform public deployment as part of normal delivery. If the user asks to share it publicly, read [references\u002Fdeploy.md](references\u002Fdeploy.md) and obtain explicit consent before uploading.\n\n## Changing an existing deck\n\nIf the change replaces the visual direction rather than preserving it, run step 3 first.\n\n1. Read the HTML, the viewport CSS, and the current slide structure before editing. Preserve the existing design system.\n2. Keep the fixed-stage model. When new content would overflow, split the slide or tighten the layout; do not add responsive breakpoints or shrink text.\n3. Preserve the deck's existing runtime if it works. If it lacks `window.deck`, the exporter falls back to toggling `.slide.active\u002F.visible`; check that the deck uses those classes.\n4. Re-run the verification in step 5 after the change, including at least one phone viewport.\n5. Do not refactor unrelated markup or restyle other slides.\n6. When adding content or images, apply the content-truth checks in steps 4–5.\n\n## Supporting files\n\n| File | Purpose | Read when |\n| --- | --- | --- |\n| [STYLE_PRESETS.md](STYLE_PRESETS.md) | 12 original presets with colors, fonts, signature elements | style exploration |\n| [bold-template-pack\u002Fselection-index.json](bold-template-pack\u002Fselection-index.json) | Compact metadata for 34 bold templates | shortlisting |\n| [bold-template-pack\u002Ftemplates\u002F*\u002Fpreview.md](bold-template-pack\u002Ftemplates\u002F) | Title-slide preview cards | only for shortlisted candidates |\n| [bold-template-pack\u002Ftemplates\u002F*\u002Fdesign.md](bold-template-pack\u002Ftemplates\u002F) | Full design system | only the selected template |\n| [viewport-base.css](viewport-base.css) | Mandatory fixed-stage CSS | every generation |\n| [html-template.md](html-template.md) | HTML structure, controller, editor, export contract | every generation |\n| [animation-patterns.md](animation-patterns.md) | Animation snippets and effect-to-feeling guide | when motion matters |\n| [references\u002Fdesign-review.md](references\u002Fdesign-review.md) | Image truth, page composition, decoration, and whole-deck checks | every delivery; image-heavy decks and generic\u002FAI-look feedback |\n| [references\u002Fpptx.md](references\u002Fpptx.md) | PPTX extraction and conversion | PPT\u002FPPTX input |\n| [references\u002Fpdf.md](references\u002Fpdf.md) | Screenshot-based PDF export | PDF requested |\n| [references\u002Fdeploy.md](references\u002Fdeploy.md) | Public sharing checklist | user explicitly asks to publish |\n| [UPSTREAM.md](UPSTREAM.md) | Pinned upstream commit, imported scope, local changes | maintenance and upgrades |\n",{"name":5,"description":7,"argument-hint":60},"[deck request, .pptx path, or existing HTML deck]","main","f48fc8bda161a30c80be9ca1189279414dde1f3a","skills\u002Ffrontend-slides","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills","https:\u002F\u002Fgithub.com\u002FSikongJueluo","https:\u002F\u002Fwww.swordlost.top","安得广厦千万间，大庇天下寒士俱欢颜！","2026-10-28 22:03:31",{"source":8,"skillName":5,"commands":70,"prompt":80,"zipAvailable":81},[71,74,77],{"tool":72,"command":73},"npx","npx skills add SikongJueluo\u002Fskills --skill frontend-slides",{"tool":75,"command":76},"bunx","bunx skills add SikongJueluo\u002Fskills --skill frontend-slides",{"tool":78,"command":79},"pnpm","pnpm dlx skills add SikongJueluo\u002Fskills --skill frontend-slides","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002FSKILL.md",true,[83,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,240,244,248,252,256,260,264,268,272,276,280,284,288,292,295,299,303,307,311,315,319,323,327,331,335,339,343,347,351,355,359,363,367,371,375,381,385,389,393,397,401,405,409,413,419,423,427,431],{"path":84,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":87,"sourceHtmlUrl":88},"animation-patterns.md","REFERENCE","参考文档",4030,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fanimation-patterns.md",{"path":90,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":91,"sourceHtmlUrl":92},"bold-template-pack\u002FREADME.md",3942,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002FREADME.md",{"path":94,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":95,"sourceHtmlUrl":96},"bold-template-pack\u002Fselection-index.json",39202,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Fselection-index.json",{"path":98,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":99,"sourceHtmlUrl":100},"bold-template-pack\u002Ftemplates\u002F8-bit-orbit\u002Fdesign.md",44709,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002F8-bit-orbit\u002Fdesign.md",{"path":102,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":103,"sourceHtmlUrl":104},"bold-template-pack\u002Ftemplates\u002F8-bit-orbit\u002Fpreview.md",4725,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002F8-bit-orbit\u002Fpreview.md",{"path":106,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":107,"sourceHtmlUrl":108},"bold-template-pack\u002Ftemplates\u002Fbiennale-yellow\u002Fdesign.md",46994,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbiennale-yellow\u002Fdesign.md",{"path":110,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":111,"sourceHtmlUrl":112},"bold-template-pack\u002Ftemplates\u002Fbiennale-yellow\u002Fpreview.md",4544,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbiennale-yellow\u002Fpreview.md",{"path":114,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":115,"sourceHtmlUrl":116},"bold-template-pack\u002Ftemplates\u002Fblock-frame\u002Fdesign.md",46460,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fblock-frame\u002Fdesign.md",{"path":118,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":119,"sourceHtmlUrl":120},"bold-template-pack\u002Ftemplates\u002Fblock-frame\u002Fpreview.md",4519,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fblock-frame\u002Fpreview.md",{"path":122,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":123,"sourceHtmlUrl":124},"bold-template-pack\u002Ftemplates\u002Fblue-professional\u002Fdesign.md",51608,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fblue-professional\u002Fdesign.md",{"path":126,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":127,"sourceHtmlUrl":128},"bold-template-pack\u002Ftemplates\u002Fblue-professional\u002Fpreview.md",4724,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fblue-professional\u002Fpreview.md",{"path":130,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":131,"sourceHtmlUrl":132},"bold-template-pack\u002Ftemplates\u002Fbold-poster\u002Fdesign.md",54588,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbold-poster\u002Fdesign.md",{"path":134,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":135,"sourceHtmlUrl":136},"bold-template-pack\u002Ftemplates\u002Fbold-poster\u002Fpreview.md",4806,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbold-poster\u002Fpreview.md",{"path":138,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":139,"sourceHtmlUrl":140},"bold-template-pack\u002Ftemplates\u002Fbroadside\u002Fdesign.md",39004,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbroadside\u002Fdesign.md",{"path":142,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":143,"sourceHtmlUrl":144},"bold-template-pack\u002Ftemplates\u002Fbroadside\u002Fpreview.md",4296,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fbroadside\u002Fpreview.md",{"path":146,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":147,"sourceHtmlUrl":148},"bold-template-pack\u002Ftemplates\u002Fcapsule\u002Fdesign.md",40414,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcapsule\u002Fdesign.md",{"path":150,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":151,"sourceHtmlUrl":152},"bold-template-pack\u002Ftemplates\u002Fcapsule\u002Fpreview.md",4384,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcapsule\u002Fpreview.md",{"path":154,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":155,"sourceHtmlUrl":156},"bold-template-pack\u002Ftemplates\u002Fcartesian\u002Fdesign.md",37122,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcartesian\u002Fdesign.md",{"path":158,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":159,"sourceHtmlUrl":160},"bold-template-pack\u002Ftemplates\u002Fcartesian\u002Fpreview.md",4443,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcartesian\u002Fpreview.md",{"path":162,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":163,"sourceHtmlUrl":164},"bold-template-pack\u002Ftemplates\u002Fcobalt-grid\u002Fdesign.md",43281,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcobalt-grid\u002Fdesign.md",{"path":166,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":167,"sourceHtmlUrl":168},"bold-template-pack\u002Ftemplates\u002Fcobalt-grid\u002Fpreview.md",4341,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcobalt-grid\u002Fpreview.md",{"path":170,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":171,"sourceHtmlUrl":172},"bold-template-pack\u002Ftemplates\u002Fcoral\u002Fdesign.md",44750,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcoral\u002Fdesign.md",{"path":174,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":175,"sourceHtmlUrl":176},"bold-template-pack\u002Ftemplates\u002Fcoral\u002Fpreview.md",4515,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcoral\u002Fpreview.md",{"path":178,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":179,"sourceHtmlUrl":180},"bold-template-pack\u002Ftemplates\u002Fcreative-mode\u002Fdesign.md",29521,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcreative-mode\u002Fdesign.md",{"path":182,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":183,"sourceHtmlUrl":184},"bold-template-pack\u002Ftemplates\u002Fcreative-mode\u002Fpreview.md",4493,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fcreative-mode\u002Fpreview.md",{"path":186,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":187,"sourceHtmlUrl":188},"bold-template-pack\u002Ftemplates\u002Fdaisy-days\u002Fdesign.md",39796,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fdaisy-days\u002Fdesign.md",{"path":190,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":191,"sourceHtmlUrl":192},"bold-template-pack\u002Ftemplates\u002Fdaisy-days\u002Fpreview.md",4638,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fdaisy-days\u002Fpreview.md",{"path":194,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":195,"sourceHtmlUrl":196},"bold-template-pack\u002Ftemplates\u002Feditorial-forest\u002Fdesign.md",39488,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Feditorial-forest\u002Fdesign.md",{"path":198,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":199,"sourceHtmlUrl":200},"bold-template-pack\u002Ftemplates\u002Feditorial-forest\u002Fpreview.md",4558,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Feditorial-forest\u002Fpreview.md",{"path":202,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":203,"sourceHtmlUrl":204},"bold-template-pack\u002Ftemplates\u002Feditorial-tri-tone\u002Fdesign.md",33424,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Feditorial-tri-tone\u002Fdesign.md",{"path":206,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":207,"sourceHtmlUrl":208},"bold-template-pack\u002Ftemplates\u002Feditorial-tri-tone\u002Fpreview.md",4757,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Feditorial-tri-tone\u002Fpreview.md",{"path":210,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":211,"sourceHtmlUrl":212},"bold-template-pack\u002Ftemplates\u002Femerald-editorial\u002Fdesign.md",45075,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Femerald-editorial\u002Fdesign.md",{"path":214,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":215,"sourceHtmlUrl":216},"bold-template-pack\u002Ftemplates\u002Femerald-editorial\u002Fpreview.md",4594,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Femerald-editorial\u002Fpreview.md",{"path":218,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":219,"sourceHtmlUrl":220},"bold-template-pack\u002Ftemplates\u002Fgrove\u002Fdesign.md",45544,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fgrove\u002Fdesign.md",{"path":222,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":223,"sourceHtmlUrl":224},"bold-template-pack\u002Ftemplates\u002Fgrove\u002Fpreview.md",4899,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fgrove\u002Fpreview.md",{"path":226,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":227,"sourceHtmlUrl":228},"bold-template-pack\u002Ftemplates\u002Flong-table\u002Fdesign.md",48984,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Flong-table\u002Fdesign.md",{"path":230,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":231,"sourceHtmlUrl":232},"bold-template-pack\u002Ftemplates\u002Flong-table\u002Fpreview.md",5226,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Flong-table\u002Fpreview.md",{"path":234,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":235,"sourceHtmlUrl":236},"bold-template-pack\u002Ftemplates\u002Fmat\u002Fdesign.md",38870,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fmat\u002Fdesign.md",{"path":238,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":127,"sourceHtmlUrl":239},"bold-template-pack\u002Ftemplates\u002Fmat\u002Fpreview.md","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fmat\u002Fpreview.md",{"path":241,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":242,"sourceHtmlUrl":243},"bold-template-pack\u002Ftemplates\u002Fmonochrome\u002Fdesign.md",36066,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fmonochrome\u002Fdesign.md",{"path":245,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":246,"sourceHtmlUrl":247},"bold-template-pack\u002Ftemplates\u002Fmonochrome\u002Fpreview.md",4456,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fmonochrome\u002Fpreview.md",{"path":249,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":250,"sourceHtmlUrl":251},"bold-template-pack\u002Ftemplates\u002Fneo-grid-bold\u002Fdesign.md",39252,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fneo-grid-bold\u002Fdesign.md",{"path":253,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":254,"sourceHtmlUrl":255},"bold-template-pack\u002Ftemplates\u002Fneo-grid-bold\u002Fpreview.md",4430,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fneo-grid-bold\u002Fpreview.md",{"path":257,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":258,"sourceHtmlUrl":259},"bold-template-pack\u002Ftemplates\u002Fpeoples-platform\u002Fdesign.md",38908,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpeoples-platform\u002Fdesign.md",{"path":261,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":262,"sourceHtmlUrl":263},"bold-template-pack\u002Ftemplates\u002Fpeoples-platform\u002Fpreview.md",4653,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpeoples-platform\u002Fpreview.md",{"path":265,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":266,"sourceHtmlUrl":267},"bold-template-pack\u002Ftemplates\u002Fpin-and-paper\u002Fdesign.md",43220,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpin-and-paper\u002Fdesign.md",{"path":269,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":270,"sourceHtmlUrl":271},"bold-template-pack\u002Ftemplates\u002Fpin-and-paper\u002Fpreview.md",4753,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpin-and-paper\u002Fpreview.md",{"path":273,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":274,"sourceHtmlUrl":275},"bold-template-pack\u002Ftemplates\u002Fpink-script\u002Fdesign.md",45749,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpink-script\u002Fdesign.md",{"path":277,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":278,"sourceHtmlUrl":279},"bold-template-pack\u002Ftemplates\u002Fpink-script\u002Fpreview.md",4799,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fpink-script\u002Fpreview.md",{"path":281,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":282,"sourceHtmlUrl":283},"bold-template-pack\u002Ftemplates\u002Fplayful\u002Fdesign.md",37271,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fplayful\u002Fdesign.md",{"path":285,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":286,"sourceHtmlUrl":287},"bold-template-pack\u002Ftemplates\u002Fplayful\u002Fpreview.md",4285,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fplayful\u002Fpreview.md",{"path":289,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":290,"sourceHtmlUrl":291},"bold-template-pack\u002Ftemplates\u002Fraw-grid\u002Fdesign.md",34859,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fraw-grid\u002Fdesign.md",{"path":293,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":111,"sourceHtmlUrl":294},"bold-template-pack\u002Ftemplates\u002Fraw-grid\u002Fpreview.md","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fraw-grid\u002Fpreview.md",{"path":296,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":297,"sourceHtmlUrl":298},"bold-template-pack\u002Ftemplates\u002Fretro-windows\u002Fdesign.md",46270,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fretro-windows\u002Fdesign.md",{"path":300,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":301,"sourceHtmlUrl":302},"bold-template-pack\u002Ftemplates\u002Fretro-windows\u002Fpreview.md",4717,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fretro-windows\u002Fpreview.md",{"path":304,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":305,"sourceHtmlUrl":306},"bold-template-pack\u002Ftemplates\u002Fretro-zine\u002Fdesign.md",44004,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fretro-zine\u002Fdesign.md",{"path":308,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":309,"sourceHtmlUrl":310},"bold-template-pack\u002Ftemplates\u002Fretro-zine\u002Fpreview.md",4598,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fretro-zine\u002Fpreview.md",{"path":312,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":313,"sourceHtmlUrl":314},"bold-template-pack\u002Ftemplates\u002Fsakura-chroma\u002Fdesign.md",49716,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsakura-chroma\u002Fdesign.md",{"path":316,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":317,"sourceHtmlUrl":318},"bold-template-pack\u002Ftemplates\u002Fsakura-chroma\u002Fpreview.md",4930,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsakura-chroma\u002Fpreview.md",{"path":320,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":321,"sourceHtmlUrl":322},"bold-template-pack\u002Ftemplates\u002Fscatterbrain\u002Fdesign.md",45167,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fscatterbrain\u002Fdesign.md",{"path":324,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":325,"sourceHtmlUrl":326},"bold-template-pack\u002Ftemplates\u002Fscatterbrain\u002Fpreview.md",4878,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fscatterbrain\u002Fpreview.md",{"path":328,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":329,"sourceHtmlUrl":330},"bold-template-pack\u002Ftemplates\u002Fsignal\u002Fdesign.md",39469,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsignal\u002Fdesign.md",{"path":332,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":333,"sourceHtmlUrl":334},"bold-template-pack\u002Ftemplates\u002Fsignal\u002Fpreview.md",4801,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsignal\u002Fpreview.md",{"path":336,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":337,"sourceHtmlUrl":338},"bold-template-pack\u002Ftemplates\u002Fsoft-editorial\u002Fdesign.md",44593,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsoft-editorial\u002Fdesign.md",{"path":340,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":341,"sourceHtmlUrl":342},"bold-template-pack\u002Ftemplates\u002Fsoft-editorial\u002Fpreview.md",4901,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fsoft-editorial\u002Fpreview.md",{"path":344,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":345,"sourceHtmlUrl":346},"bold-template-pack\u002Ftemplates\u002Fstencil-tablet\u002Fdesign.md",46537,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fstencil-tablet\u002Fdesign.md",{"path":348,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":349,"sourceHtmlUrl":350},"bold-template-pack\u002Ftemplates\u002Fstencil-tablet\u002Fpreview.md",4852,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fstencil-tablet\u002Fpreview.md",{"path":352,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":353,"sourceHtmlUrl":354},"bold-template-pack\u002Ftemplates\u002Fstudio\u002Fdesign.md",39487,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fstudio\u002Fdesign.md",{"path":356,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":357,"sourceHtmlUrl":358},"bold-template-pack\u002Ftemplates\u002Fstudio\u002Fpreview.md",4754,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fstudio\u002Fpreview.md",{"path":360,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":361,"sourceHtmlUrl":362},"bold-template-pack\u002Ftemplates\u002Fvellum\u002Fdesign.md",44168,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fvellum\u002Fdesign.md",{"path":364,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":365,"sourceHtmlUrl":366},"bold-template-pack\u002Ftemplates\u002Fvellum\u002Fpreview.md",4705,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fbold-template-pack\u002Ftemplates\u002Fvellum\u002Fpreview.md",{"path":368,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":369,"sourceHtmlUrl":370},"evals\u002Fevals.json",14194,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fevals\u002Fevals.json",{"path":372,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":373,"sourceHtmlUrl":374},"evals\u002Ffixtures\u002Fdesign-direction\u002Fnotes.md",1318,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fevals\u002Ffixtures\u002Fdesign-direction\u002Fnotes.md",{"path":376,"resourceType":377,"resourceTypeDesc":378,"sizeBytes":379,"sourceHtmlUrl":380},"evals\u002Ffixtures\u002Fimage-truth\u002Fdeck\u002Fassets\u002Fremote-back.png","ASSET","资产文件",8846,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fevals\u002Ffixtures\u002Fimage-truth\u002Fdeck\u002Fassets\u002Fremote-back.png",{"path":382,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":383,"sourceHtmlUrl":384},"evals\u002Ffixtures\u002Fimage-truth\u002Fdeck\u002Findex.html",4454,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fevals\u002Ffixtures\u002Fimage-truth\u002Fdeck\u002Findex.html",{"path":386,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":387,"sourceHtmlUrl":388},"evals\u002Ftrigger-set.json",2453,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fevals\u002Ftrigger-set.json",{"path":390,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":391,"sourceHtmlUrl":392},"html-template.md",26720,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fhtml-template.md",{"path":394,"resourceType":394,"resourceTypeDesc":395,"sizeBytes":396,"sourceHtmlUrl":15},"LICENSE","许可证",1157,{"path":398,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":399,"sourceHtmlUrl":400},"references\u002Fdeploy.md",1924,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Freferences\u002Fdeploy.md",{"path":402,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":403,"sourceHtmlUrl":404},"references\u002Fdesign-review.md",7136,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Freferences\u002Fdesign-review.md",{"path":406,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":407,"sourceHtmlUrl":408},"references\u002Fpdf.md",3829,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Freferences\u002Fpdf.md",{"path":410,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":411,"sourceHtmlUrl":412},"references\u002Fpptx.md",2317,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Freferences\u002Fpptx.md",{"path":414,"resourceType":415,"resourceTypeDesc":416,"sizeBytes":417,"sourceHtmlUrl":418},"scripts\u002Fexport-pdf.mjs","SCRIPT","脚本",19844,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fscripts\u002Fexport-pdf.mjs",{"path":420,"resourceType":415,"resourceTypeDesc":416,"sizeBytes":421,"sourceHtmlUrl":422},"scripts\u002Fextract-pptx.py",7028,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fscripts\u002Fextract-pptx.py",{"path":424,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":425,"sourceHtmlUrl":426},"STYLE_PRESETS.md",8201,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002FSTYLE_PRESETS.md",{"path":428,"resourceType":85,"resourceTypeDesc":86,"sizeBytes":429,"sourceHtmlUrl":430},"UPSTREAM.md",6100,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002FUPSTREAM.md",{"path":432,"resourceType":433,"resourceTypeDesc":434,"sizeBytes":435,"sourceHtmlUrl":436},"viewport-base.css","OTHER","其他",3625,"https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Ffrontend-slides\u002Fviewport-base.css",[438,461,477,498,524,546],{"skillNo":439,"name":440,"nameZh":6,"description":441,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":442,"categories":443,"keywords":444,"publishedAt":55},"01M71NFQMX5RNAXMZCXTCA0FFW","teaching","Teach toward a maintainable implementation when the user asks to learn before building, or says they are unfamiliar with technology required by a development task. Use for conversational co-design tied to real project work; not for general explanations, standalone tutorials, or persistent courses.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fteaching\u002FSKILL.md",[],[440,445,446,45,41,447,448,449,450,451,452,51,453,454,455,456,457,458,459,460],"implementation","task","learn","user","before building","project work","project","co","development","courses","standalone","work","with","technology","general","design",{"skillNo":462,"name":463,"nameZh":6,"description":464,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":465,"categories":466,"keywords":470,"publishedAt":55},"01M71NFP48KR5WA41MWB59MBSZ","teach-me","Learn enough to co-design and maintain a real development change.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fteach-me\u002FSKILL.md",[467],{"categoryNo":468,"categoryName":469,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000039","教师与教育",[471,472,473,452,447,453,474,475,460,476],"teach me","me","teach","maintain","change","true",{"skillNo":478,"name":479,"nameZh":6,"description":480,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":481,"categories":482,"keywords":483,"publishedAt":55},"01M71NFM3K25R1843319SZ9JJ7","review-with-me","Curate the code worth a human's attention and present it in reviewable slices.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Freview-with-me\u002FSKILL.md",[],[472,457,484,485,486,487,488,489,490,491,492,476,493,494,495,496,497],"review","review with me","it","language","present","bookmark","curate","human","code","commits","scope","branch","attention","natural language",{"skillNo":499,"name":500,"nameZh":6,"description":501,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":502,"categories":503,"keywords":510,"publishedAt":55},"01M71NFHBZQR70H9PATVKWDN68","refactor-ui","Improve an existing UI, screen, slide deck, or visual artifact that the user mostly accepts but finds too busy, unclear, inconsistent, ugly, plain, or over-decorated. Use when the user gives feedback on a rendered artifact and wants a bounded revision that preserves what works. Not for building from scratch, exploring an undecided visual direction, deck production or conversion, or implementing a specified design.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Frefactor-ui\u002FSKILL.md",[504,507],{"categoryNo":505,"categoryName":506,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":508,"categoryName":509,"taxonomyType":32,"taxonomyTypeDesc":33},"01JBSEEDCAT000000000000032","设计师",[511,512,513,514,515,516,39,517,518,41,44,45,460,519,520,521,49,51,522,523],"refactor","ui","refactor ui","implementing","artifact","From Scratch","visual","URL","improve","screen","scratch","direction","feedback",{"skillNo":525,"name":526,"nameZh":6,"description":527,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":528,"categories":529,"keywords":530,"publishedAt":55},"01M71NFDMN0VZ3JYMZBK6BJF5P","jj-describe","Write and apply concise, self-contained Conventional Commits descriptions for Jujutsu commits. Use when the user asks to describe a jj commit, and after completing a cohesive code or documentation change in a jj repository when the current non-empty commit is undescribed. Explain what changed and why without context-only planning labels such as P0 or P1.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fjj-describe\u002FSKILL.md",[],[531,532,533,534,45,535,536,537,51,493,538,539,540,541,41,492,542,543,544,545],"jj describe","jj","describe","as","only","labels","jujutsu","planning","diff","cohesive","show","git log","apply","Bash","conventional commits",{"skillNo":547,"name":548,"nameZh":6,"description":549,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":550,"categories":551,"keywords":552,"publishedAt":55},"01M71NFBQXB3GDS2V272956BWN","jj-desc","Write a concise, self-contained Jujutsu commit description that explains what changed and why.","https:\u002F\u002Fgithub.com\u002FSikongJueluo\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fjj-desc\u002FSKILL.md",[],[553,532,554,555,556,557,537,558,475,476,559,560],"jj desc","write","self-contained","commit","why","concise","self","id"]