下载地址
https://www.zhengdianxue.com/wp-content/uploads/skills/pet-one--pet-hospital-social-note.zip将提示词发送给你的 AI 安装该 skills
请根据 https://skillhub.cn/install/skillhub.md,安装 @pet-one/pet-hospital-social-note。让宠物医生的专业,一眼就被看见!只需上传照片、病例影像或说出一个选题,一句话即可生成专业、吸睛、可直接发布的宠物医疗图文——自动写文案、美化图片、完成排版,并严守医疗边界。把复杂病例变成看得懂、愿意看、值得信任的内容。
阅读全文 (展开查看完整说明)
概述
宠物医院图文笔记生成器
<!– upstream-check: material-first Live Photo puzzle layouts –>
Create polished social card packages for Xiaohongshu/Rednote, WeChat Official Account, article covers, and platform thumbnails.
This skill is self-contained. It borrows visual principles from the Guizang PPT style system, but it must not edit the original PPT skill, its templates, or its references. If the original PPT skill is available, you may read it for reference only.
Generated work must live in a task folder, not in the skill root. Default to local-tests/<slug>/ inside this repository, or use the explicit output folder requested by the user. Do not create root-level task folders such as social-card-*, livephoto-*, wechat-*, output/, or loose rendered assets next to SKILL.md.
Default Topic-To-Note Workflow
This section has priority whenever the request is about a pet hospital, including minimal prompts with only attachments.
Minimal Invocation Contract
- Treat
请帮我完成对应任务,按这个素材做一套, a single topic sentence, or uploaded materials with no detailed prompt as sufficient input. - Read
references/pet-medical-boundaries.mdbefore planning any pet-health, disease, examination, medication, case, surgery, diagnostic-image, emergency, or owner-advice content. - If the user uploads diagnostic images without a veterinarian-confirmed conclusion, automatically create a neutral educational note about the examination, its role, limitations, visit flow, and review points. Never infer a diagnosis from the pixels.
- Ask at most one question only when proceeding would expose personal information, falsely imply case authorization, or create an individual diagnosis/treatment instruction. Otherwise make conservative defaults and finish the draft.
- An unsafe request should be transformed into the nearest safe educational topic and completed, not abandoned.
- Treat the topic and direction as sufficient input. Do not ask for or generate a spoken-word transcript.
- 不生成逐字稿;用户无需先提供口播稿。
- Directly create a publish-ready package:
5-9vertical cards, one title, one post body, and3-5hashtags. - Default image size is Xiaohongshu
1080x1440(3:4). The same vertical images may be reused for WeChat when requested. - The publish title must be no longer than
20Chinese characters. The post body should use short paragraphs and a restrained number of relevant emoji. - Images carry the visual argument; the post body carries nuance. Do not paste a long article onto the cards.
- If no photos or screenshots are supplied, proceed with the original Editorial or Swiss typographic/data-card system. Do not interrupt this workflow just to request images unless a factual visual claim genuinely requires evidence.
- For pet-medical content, follow
references/pet-medical-boundaries.md: do not invent diagnoses, treatment plans, dosage, efficacy, prices, cases, statistics, authorization, or regulatory claims. Mark medical judgement for veterinarian review and commercial promises for responsible-person review. - When medical images are supplied, preserve originals under the task folder, create separate display copies, remove identifying information, use
object-fit: contain, and keep all text outside the diagnostic region. Beautify the presentation, never the diagnostic pixels. - Keep the upper-left running-header area blank. Never display style names, batch names, account labels, or internal production labels there.
- Rotate away from the previous task's palette and layout family when history is available.
- Generate files only. Do not publish or schedule a platform post unless the user separately confirms that action.
Required delivery structure:
<task>/
01_images/
xhs-01-cover.png
xhs-02-point.png
...
02_publish_copy.md
03_publish_title.txtBefore delivery, verify every PNG is 1080x1440, the title is within 20 characters, hashtags are at most 5, no content overflows, and all upper-left running headers are blank.
What To Produce
Use this skill for:
- Social card / carousel image sets: cover plus content pages, especially Xiaohongshu/Rednote 3:4.
- Short Live Photo motion cards when the user asks for Live Photo / 实况照片 and supplies video evidence or screen recordings.
- Material-first Live Photo puzzle layouts when the user has high-quality video assets and wants single-video, two-grid, three-grid, or four-grid motion cards with little or no added text.
- Triple Live Photo collages when the user has three short videos, three results, three viewpoints, or a high-information comparison that should stay inside one image-card unit.
- Long-video intake for Live Photo: diagnose whether to trim, speed up, split into a triple collage, or ask the user for a specific time range before rendering.
- WeChat Official Account cover pairs: one
21:9main cover plus one1:1square cover, composed together in the same HTML for visual checking. - Screenshot-heavy product posts, article covers, tutorial carousels, outdoor/lifestyle notes, AI/product update explainers.
- Social images that need Guizang-style Swiss or editorial magazine layouts.
Do not use this skill for:
- Full slide decks or horizontal PPT websites. Use the PPT skill for that.
- Long-form video generation. Use a video skill for that. This skill only supports short, layout-bound Live Photo cards that replace a still image slot with video.
- Pure image editing with no layout or article extraction requirement.
Rednote Category Capability (capability circle)
The 11 most-common Rednote (小红书) categories fall into three buckets. See references/category-cookbook.md for the recipe-by-recipe routing.
Strong end-to-end (text, structure, and image story all in scope):
- 旅行 (Travel), 职场 (Workplace), 推荐 (Recommended, after specifying a subtype).
Strong on text & structure; image needs to come from the user or a sourced library:
- 游戏 (Game), 影视 (Film/TV), 美食 食谱方向 (Food — recipes only), 彩妆 教程方向 (Makeup — tutorials only), 健身 (Fitness), 家居 (Home), 穿搭 精选方向 (Outfit — capsule/essay only).
Outside scope — push back honestly rather than promise a result:
- 美食 菜品大片摆盘 (food-photography showcase).
- 穿搭 日常 OOTD 全身 (daily OOTD body shots; we cannot generate or simulate).
- 情感 梦核 / 氛围感装饰风 (dreamcore / aesthetic-light styling — clashes with both Editorial and Swiss).
- Y2K / 千禧辣妹 / 哥特萝莉 / kawaii decorated aesthetics.
- Pure photography showcase posts where the image is the entire deliverable.
When a request falls in the third bucket, name what we cannot do at intake — do not silently retrofit a layout that misses the user's intent.
Core Principle
Expression comes first. The goal is not to squeeze text into posters; it is to turn the source into a clear visual argument.
For each page, decide:
- What should the viewer understand in one glance?
- What evidence, screenshot, or image supports it?
- Which words must be large, and which can become captions or metadata?
- What can be removed because it belongs in the post body, not the image?
Required References
Read these files as needed:
references/pet-medical-boundaries.mdfirst for every pet-health or clinical request; it defines minimal-prompt defaults, medical claims, emergencies, privacy, case authorization, diagnostic-image handling, and the required human review block.references/platform-specs.mdfor exact ratios, output sizes, and naming.references/style-system.mdfor Guizang editorial and Swiss visual rules.references/theme-presets.mdwhen choosing electronic-magazine palettes or Swiss accent palettes.references/layout-recipes.mdwhen selecting carousel/social-card/WeChat page structures.references/components.mdfor the shared component spec: font stacks, type scale, minimum readable sizes, Chinese title length bands, Swiss card-fill mutual-exclusion rule, image-container ratio classes, spacing tokens, and Lucide icon rules.references/background-systems.mdwhen building electronic-magazine WebGL/ink/paper backgrounds.references/portrait-fill.mdwhen adapting layouts to 3:4 and avoiding under-filled vertical space.references/content-planning.mdfor cover hooks, page breakdown, and copy compression.references/production-workflow.mdfor HTML/CSS rendering and image handling.references/live-photo-production.mdwhen the user asks for Live Photo / 实况照片 / 三连实况拼图, supplies video assets for a social card, or wants Xiaohongshu / WeChat motion-card delivery. It covers information budget, single vs triple Live Photo, long-video intake, and platform publishing reminders.references/image-overlay.mdwhenever text sits on top of a photo: photo qualification, localized tint fallback, and face / subject avoidance via multimodal subject mapping.references/screenshot-treatment.mdwhen the user supplies an app / web / code / dashboard screenshot — picks.frame-shotover.frame-img, sets corners/shadow/bg/inset, decides on.device-browseror.device-phonechrome.references/map-component.mdwhen the content has spatial relationships (travel route, store locations, walking tour) — use a user-supplied/local raster or schematic SVG. Do not use live network-backed maps. Pins are HTML overlays.references/title-shortener.mdwhen the task is a WeChat 21:9+1:1 cover pair, or any cross-platform reuse — derives the 1:1 short title from the long one (5-step extraction, 4 patterns, anti-patterns, sizing on.poster.square).references/category-cookbook.mdto route a user-named Rednote category (旅行 / 职场 / 游戏 / 影视 / 彩妆 / 美食 / 穿搭 / 家居 / 健身 / 情感 / 推荐) to applicable recipes and to confirm scope.references/qa-checklist.mdbefore delivering final images.
Workflow
1. Intake
Gather only the missing information that changes the output. For pet-hospital requests, minimal input is enough: apply the defaults in references/pet-medical-boundaries.md and proceed.
- Target platforms and ratios.
- Source text, subtitles, article, or title.
- Rednote category — if the user names one of the 11 common types (旅行 / 职场 / 游戏 / 影视 / 美食 / 彩妆 / 穿搭 / 家居 / 健身 / 情感 / 推荐), route via
references/category-cookbook.mdto find the right recipes and to confirm the request is inside the capability circle (see "Rednote Category Capability" above). If a request lands in the outside-scope bucket, surface that to the user before designing, do not silently retrofit. - Supplied images/screenshots and where each should appear. For pet-hospital diagnostic images, do not ask the user to identify a disease and do not infer one; route to the safe material-led flow in
references/pet-medical-boundaries.md. - Supplied video assets, if the user asks for Live Photo. Only use video supplied for the current task or already present in the user-selected local task folder; this skill never sources video remotely. Confirm the target platform because duration differs: Xiaohongshu supports
5s; WeChat Official Account Live Photo should stay at3sand must be uploaded from iPhone. Before cutting, readreferences/live-photo-production.mdand classify the request as single Live Photo, triple collage, or long-video intake. If the source is too long or contains multiple usable moments, do a low-cost diagnosis first, then ask once whether to trim, speed up, split into multiple wells, or use a user-specified time range. If the source is shorter than the target duration, ask whether to provide a longer clip, accept a shorter Live Photo, or explicitly allow a hold/slowdown. If the important focus is ambiguous, suggest possible crop/enlarge options but let the user decide before executing. - For non-medical, general-purpose requests only: if the user supplies only text (no images at all), ask once before designing. Pet-hospital requests skip this gate and default to the existing Editorial or Swiss typographic/data-card system so a one-line prompt can finish end to end.
这篇我需要 1-2 张图。三种走法:
A. 你自己有照片 / 截图,传给我(推荐——最不"AI 感")
B. 你提供一张已授权的本地素材,或使用内置模板 / 本地生成图
C. 用 AI 生成Recommend A in one line — your own photo is what makes a poster not look AI-generated. Accept whatever the user picks (including "都行你看着办") and proceed. Do not re-prompt later, do not keep nudging toward A across multiple turns. This question is one-shot.
- Preferred style if specified: Swiss Style, magazine/editorial, tech, outdoor, etc.
- Hard constraints: title text, no image on 1:1 cover, must include a hardware photo, keep screenshot readable, and so on.
If the user has already supplied enough context, proceed with reasonable assumptions.
If the content involves current product releases, policies, prices, claims, or news, verify unstable facts with browsing and cite sources in the final response.
2. Extract The Story
Turn the source into a page plan before designing.
For Rednote:
- Page 1 is the cover hook.
- Pages 2-N each carry one idea only.
- Use 5-9 pages for most posts. Compress or combine pages when lower areas become empty.
- Keep the post body for nuance; images should carry hooks, comparisons, checklists, and sharp takeaways.
For WeChat:
- Always produce a paired system:
21:9main cover and1:1square cover. - Build both covers in the same HTML file and add a combined preview section so their visual relationship can be checked together.
21:9keeps the full or near-full title, subtitle, and one strong visual relation.1:1uses a simplified short title derived from the long title: big centered type, no image by default, no cramped subtitles.
Persistent Publishing Constraint: Blank Upper-Left Header
For this user's Xiaohongshu / WeChat publishing workflow, the upper-left running-header area must remain blank on every generated image unless the user explicitly asks otherwise.
- Never show style names, palette names, layout-family names, category names, batch names, account labels, or internal production labels in the upper-left header. Forbidden examples include
森林知识笔记,蓝图网格,TAKEAWAY, andFIELD LEDGERwhen used as a running header. - The upper-right page number may remain. A structural hairline may remain. The upper-left side of that same header row must contain no visible text.
- A source-facing kicker inside the main content area below the header is still allowed when it helps the reader. This rule targets the separate top-left running label, not legitimate article content.
- This constraint overrides any layout recipe that normally places a category, date, issue, account, or style label in the upper-left header.
- Keep style and family names in filenames, manifests, CSS attributes, and internal plans only.
3. Choose Style Mode
Pick one mode per package. The two systems are not bound to specific content types — what changes is the visual stance, not which topic you can talk about. A workplace essay can be Editorial; a travel ledger can be Swiss. Pick by the feeling you want, not by category lookup.
Editorial Magazine x E-ink brings:
- Serif/Songti display + quiet sans body, paper + ink palette.
- Atmosphere layer (paper grain / ink wash / WebGL canvas) over a warm paper base.
- Ledger rows, marginalia, pull quotes, large photo wells — magazine-feature feel.
- Best when you want the page to feel slow, considered, hand-set.
Swiss International brings:
- Inter / Helvetica feel, very light display at large sizes, mono labels at small.
- Strict left-aligned grid, hairline rules, one high-saturation accent.
- Card-fill matrices, KPI towers, h-bar charts, numbered statements — system / data feel.
- Best when you want the page to feel engineered, quantified, decisive.
If both feel viable for a piece of content, the question becomes editorial intent: "is this a feature story or a release note?" That decides the mode, not the topic itself.
Do not mix the two visual systems inside the same image set unless the user explicitly asks for a hybrid.
Then pick one theme:
- Editorial Magazine x E-ink uses one of 6 magazine palettes: Ink Classic, Indigo Porcelain, Forest Ink, Kraft Paper, Dune, or Midnight Ink (the only dark variant; reserved for game key art / night photography / cinematic covers).
- Swiss International uses one of 4 accent palettes: IKB Blue, Lemon Yellow, Lemon Green, or Safety Orange.
Read references/theme-presets.md for exact CSS tokens. Do not invent arbitrary colors unless the user has a strict brand requirement.
4. Plan Pages
Create a concise internal plan:
Page 01 / cover / hook / image source / layout intent
Page 02 / point / key copy / visual evidence / layout intent
...When the user asks for approval, show this plan before rendering. Otherwise use it internally and proceed.
Use references/layout-recipes.md to choose page structures. Avoid making every page a repeated title-plus-card layout.
For 3:4 images, check references/portrait-fill.md before coding. A short table or ledger must be expanded into a full portrait composition with a quote column, image evidence, marginalia, larger rows, or a background hero zone.
Audience-facing copy must describe the user's actual scene, not the production method. Internal terms such as 3s, 5s, Live Photo, triple collage, information budget, long-video intake, speed-up, highlight detection, one action point, or layout template may guide planning, filenames, QA notes, and delivery summaries, but they must not become the H1, hook, or main body copy unless the user is explicitly making an instructional post about those concepts. Before rendering, read every visible headline once as a real viewer: if it sounds like a task requirement, replace it with scene-specific copy.
For owner-facing disease, examination, medication, emergency, surgery, or case content, add the visible medical reminder required by references/pet-medical-boundaries.md. Put the full internal review block in 02_publish_copy.md, not on the cards, and never mark any review item complete on the user's behalf.
Do not add non-template ornaments just to satisfy an automated density warning. Extra rulers, side bars, pseudo time axes, decorative labels, or invented badges must come from an existing layout recipe or a user request. If a density warning appears, fix it by choosing a better recipe, resizing real content, or accepting the advisory warning with a visual rationale; do not put meaningless UI on the card.
For Live Photo cards, plan them as normal social cards first, then decide the motion role: one action point, one small process, a before/after change, three parallel results, or ambience/evidence. The only structural change is that one or more image wells become video wells. Keep the same ratio, crop, safe-area, typography, and style mode rules; apply the still-image crop logic to the video stream. The first frame must pass the same checks as a static image: no excessive crop, key UI/content remains readable, and the card still follows the chosen layout recipe. Read references/live-photo-production.md before rendering.
For material-first Live Photo puzzle cards, let the video assets lead. Use little or no copy: one short headline is enough for a single-video cover, and two-grid / three-grid / four-grid versions should usually have no added text. When a single-video cover adds text on top of the footage, use the M16 Image-Led Cover / text-on-image rules: subject map first, safe quiet zone, Editorial serif/Songti title at regular-medium weight, paper-cream text, and no default full-canvas mask. Do not invent extra kicker, meta, hairlines, labels, rulers, badges, subtitles, or explanatory production terms just to make the overlay feel designed. If only one headline is available, make the typography carry the layout: phrase-aware line break, restrained size, tracking, alignment, and placement. Treat source-embedded text as part of the footage; only avoid adding new text unless the user asks.
4.5. Copy The Seed Template
Do not write HTML from scratch. Pick one seed template based on the style mode chosen in Step 3:
- Editorial Magazine × E-ink → copy
assets/template-editorial-card.htmlinto the task folder asindex.html. - Swiss International → copy
assets/template-swiss-card.htmlinto the task folder asindex.html.
The seed already wires up: font loading, theme tokens, all three poster sizes (.poster.xhs / .poster.square / .poster.wide), the pair-preview frame, grain/background layers, and all class definitions referenced by the layout recipes.
Set the theme/accent on the <html> element:
- Editorial:
<html data-theme="ink-classic | indigo-porcelain | forest-ink | kraft-paper | dune | midnight-ink">. - Swiss:
<html data-accent="ikb | lemon-yellow | lemon-green | safety-orange">.
Replace the single placeholder poster after <!-- POSTERS_HERE --> with one <section class="poster ..."> block per page, each carrying the HTML skeleton from a chosen Layout Recipe (M01-M16 for Editorial, S01-S12 for Swiss). Never load the wrong template's class system: Editorial recipes assume serif display + ledger/marginalia/pipeline-v; Swiss recipes assume Inter + card-fills + matrix/h-bar/kpi-tower. Mixing them silently breaks the layout.
5. Build And Render
Default implementation pattern:
- Create a task folder under
local-tests/<slug>/by default, or inside the user-requested output folder. Never put generated task folders, rendered images, MOV files,.pvtpackages, or source media in the skill root next toSKILL.md. - Put source images in
assets/. - Start from the seed template copied in Step 4.5, not a blank file. Prefer changing only the
<!-- POSTERS_HERE -->region page-to-page. If a task needs custom layout CSS, add one clearly named task-scoped block in the copied file and keep semantic defaults reset (figure { margin:0; }, no browser-default spacing surprises). - Use Playwright or a browser screenshot tool to export each
.posteror.covernode. - Save rendered images in
output/. - Verify dimensions and inspect the rendered PNGs.
- Keep
node validate-social-deck.mjs <task-dir>available for auto-check passes. It checks overflow (R1), footer collision (R2), Swiss bold display (R3), minimum font size (R4), 4-band density (R5),.h-xlline caps (R6), browser-default figure margin drift (R7), visual bounds / bottom whitespace (R8), and title-to-content gaps (R9). Exit code 1 on any FAIL — fix before final delivery when auto-check is requested. WARN is advisory but read it.
Live Photo branch:
- Decide the information budget before rendering:
3sfits one action point;5sfits one small process; triple collage fits three parallel clips but not a complex story; long videos require diagnosis before editing. - For long sources, avoid claiming precise automatic highlight detection. Probe duration/resolution, make a sparse contact sheet, and choose between trim, speed-up, split/triple collage, or asking the user for a time range.
- Extract a first frame from each video well, place it in the final static card layout, and show/inspect that preview before making
.pvt. This catches crop and hierarchy issues with much lower token and render cost. - Render the paired MOV at the platform duration:
5sfor Xiaohongshu,3sfor WeChat Official Account. - Extract the key JPG from a readable representative frame.
- Package
JPG + MOVinto.pvtwithmakelive; AirDrop the.pvtas one item for iPhone tests. - Validate dimensions, duration, frame count, package contents, and motion quality. Prefer a contact-sheet frame strip for visual checks so only the final tiled image needs human/model inspection. Use
references/live-photo-production.mdfor exact commands and failure-mode checks.
Do not place visible instructions, keyboard shortcuts, or usage explanations inside the images.
For Editorial Magazine x E-ink, use a layered background system. Prefer a subtle WebGL ink-flow canvas or a frozen procedural canvas plus paper grain. Read references/background-systems.md; do not rely on a flat beige background, and do not add page-wide grid/dot backgrounds.
6. Image And Screenshot Handling
When the user provides screenshots:
- Preserve screenshot content unless the user asks for redesign.
- Prefer programmatic framing: target-ratio canvas, safe padding, clean background, readable screenshot.
- Do not stretch screenshots.
- If screenshot clarity matters, enlarge the screenshot area and reduce nearby text.
Text-On-Image Composition
Whenever a poster places text on top of a photo (full-bleed cover, large image well, generated-image overlay), follow references/image-overlay.md:
- Selection first, tint only if needed. A photo covering ≥60% of the canvas must first pass the quiet-zone and light tests in
image-overlay.md. Compose without a mask first; if the thumbnail check fails, add only a localized, image-toned tint around the title area. Do not default to full-canvas falloffs. - Subject mapping is mandatory. Before placing the title, read the image with the Read tool, describe in plain language where the subject's face/focal feature sits, and record the subject map as an HTML comment next to the hero block. Place text only in the documented safe zones.
- Crop discipline — set
object-positioninline on every photo. The template default (center 50%) is a fallback, not a recommendation. For every<img>, decide based on subject location and write it inline: e.g.style="object-position:center 62%"for mid-body subjects,center 30%for sky-heavy landscapes with horizon-line subjects,center 70%for foreground gear. See the table inreferences/components.mdfor ranges andimage-overlay.mdfor face-photo specifics. Skipping this silently crops subjects out of frame on tall ratios (r-3x4,r-21x9). - Thumbnail test. Downscale the rendered PNG to 360 px wide and confirm the title is still legible. If the title fights the photo, move the title, swap the photo, or add a localized image-toned tint; if the photo looks dead, the tint is too heavy or the photo was wrong for text-on-image.
Editorial dark covers (e.g. game journals on key art) and Swiss covers with hero photos both require these checks. Skipping them is a known failure mode (see style-system.md Anti-Pattern D).
When the user has no images:
- This branch only runs if the Step 1 "三选一" gate landed on B (user-provided local asset) or C (AI-generated). Never silently choose a source path.
- For C (AI-generated): use generated bitmaps only where they add real value, usually 1-2 pages. Generate images that match the page's visual role, not generic decoration. Keep generated images free of embedded titles, page numbers, logos, or fake UI labels unless explicitly needed.
- For B (user-provided local asset): ask the user to provide an authorized local file, then copy it into the task folder's
assets/directory and record its provenance there. - If the user has no suitable local asset, use the bundled templates, a schematic SVG, or the approved image-generation capability. This skill never searches for, fetches, or downloads remote assets.
User-Supplied Images
- Accept only files supplied for the current task or already present in the user-selected local task folder.
- Do not follow remote image URLs, load third-party fonts or scripts, or add network-backed map tiles to generated HTML.
- Record the local filename, authorization status, and any attribution requested by the user in
assets/SOURCES.md. - If factual visual evidence is missing, leave a deliberate placeholder or ask the user for an authorized local asset; do not silently substitute an unverified image.
7. Deliver
Show user first, validate on request. Auto-running the validator after every render takes too long and delays the user from seeing results. Default flow:
- After rendering completes, immediately show the user the rendered images inline (absolute paths) with a one-sentence summary of what was built.
- Ask one question: "先你自己看,还是我先自动核查一遍?" (Do you want to review first, or should I run the auto-check?)
- If the user says "我自己看" / "先给我" / "no need" — stop here, let them inspect, and respond to whatever they raise.
- If the user says "你查吧" / "auto-check" / "yes" — only then run
node validate-social-deck.mjs <task-dir>, fix any FAIL, and re-render before final delivery. Mention density/cap WARNs.
Never silently run the validator before showing the user — it costs minutes per pass and the user often spots issues faster.
Final response (after the user has reviewed or asked for auto-check) should include:
- Output folder path.
- Rendered images shown inline with absolute paths when useful.
- A short note on dimensions and verification (or "not yet validated, awaiting your review").
- For any user-supplied image: local source filename, authorization status, and the attribution decision the user made.
- For Live Photo: the
.pvtpackage path, the debugJPG + MOVpair, target platform duration, and validation summary. - For Live Photo publishing: remind the user of two things: platform limits (
5sXiaohongshu,3sWeChat Official Account) and publish path (AirDrop the.pvtpackage as one item to iPhone, then publish from the matching mobile app path; desktop/web upload paths generally cannot recognize.pvtas a publishable Live Photo). - If the user cannot use the iPhone/AirDrop publishing path (e.g. desktop-only workflow, Android, or a platform that does not support Live Photo), offer a degraded delivery: export a short looping GIF or a silent MP4 clip from the same MOV source. The GIF/MP4 keeps the motion evidence but loses the Live Photo tap-to-play experience. Confirm with the user before switching to this fallback.
- Any unresolved risks, such as source images being low resolution.
Non-Negotiables
- Never edit the original Guizang PPT skill or any upstream skill copied from elsewhere.
- Never create generated work in the skill root. All task artifacts must be under
local-tests/<slug>/by default, or under a user-requested output folder. Root-level generated folders likesocial-card-*,livephoto-*,wechat-*, and loose output assets are forbidden. - Do not create random decorative SVG ovals, blobs, rain drops, stickers, or meaningless circles.
- Do not use nested cards or generic SaaS card layouts as the default.
- Do not let text overflow, touch the edge, or collide with the footer band. Pin
.footwithmargin-top: autoinside a flex column, never withposition: absoluteover growing content. - When content overflows, measure the amount before editing. Small overflows should get small fixes:
1-40pxmeans nudge/tighten,40-90pxmeans local compaction,90-160pxmeans slight title or paragraph compression, and only160px+should trigger recipe changes or content removal. After fixing, check R8 bottom whitespace so the page does not swing from overflow to a giant empty lower band. - Do not let a title touch the next content block. Main display titles should usually keep at least
28pxbelow; local headings should keep at least16px. Use validator R9 before relying on visual inspection. - Do not let text become too small to read on mobile.
- Do not write inline
font-size+font-weighton display titles in Swiss. Use the typed classes (.h-hero/.h-statement/.h-xl/.num-mega). A 80-120px headline at weight 700-900 is not Swiss; "the larger, the lighter" is a hard rule. - Do not deliver Editorial posters with a flat paper background, mono labels on every row, and no atmosphere layer. Run the Editorial Identity Test in
references/style-system.md— a serif title alone does not make a poster Editorial. - Do not fake data, release details, or percentages.
- Do not diagnose, stage disease, predict outcome, prescribe, or recommend a dose from an uploaded image or a short description.
- Do not overwrite, generatively edit, stretch, mirror, arbitrarily rotate, locally retouch, denoise, sharpen, colorize, or crop diagnostic-image anatomy and markers. Only presentation-level framing is allowed; see
references/pet-medical-boundaries.md. - Do not publish a case image with visible personal information or unconfirmed authorization. A draft may be generated but must be marked not ready to publish.
- Do not crop faces, key UI text, or hardware/product details unless the user explicitly accepts it.
- Do not turn a video card into a fake still sequence without saying so. If a source is shorter than the target duration, ask for a longer source, use a shorter platform-safe duration, or explicitly document any hold/slowdown.
- Do not skip the first-frame preview for Live Photo. Video is an image well with motion; its first frame must satisfy the static 3:4 layout and crop rules before rendering the MOV.
- Do not let result videos scroll through section boundaries in a shallow crop; this creates the "overlapping video" failure. Inspect contact sheets and choose a stable time window before packaging.
- Do not guess the user's visual priority when enlarging/cropping video for readability. Offer the crop/enlarge tradeoff and apply it after the user confirms, unless the request already makes the focal region explicit.
- Do not reuse a 21:9 cover by blindly cropping it into 1:1. Compose each ratio separately.
- 3:4 卡必须吃满画布。Content (text + image + data) 必须覆盖 ≥75% 画布高度。任何 >15% 画布高度的纯空白带都需要"留白理由":(a) hero image 自带呼吸、(b) 单句宣言式 hero statement、(c) 段落顶/底 leading & trailing whitespace(前后总和 ≤15%)。禁止用
<div style="flex: 1"></div>上下夹击把内容塞到中段——杂志页留白逻辑不适用于社交卡(杂志靠对开页吸收留白,社交卡逐张独立刷,欠填看着像 PPT 漏排)。Recipe-by-recipe 最小密度见references/layout-recipes.md每条 recipe 的「Minimum density」段。Render 后必须跑qa-checklist.md的 4 横带密度检查。