
Hatch Pet用 Codex Skills 从概念到 8×9 动画精灵图集的完整孵化工作流【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills导读Hatch Pet 是 Codex Skills 目录中的一项端到端工作流技能skill它把一段文字概念、品牌线索、公司/潜在客户名称或一张参考图逐步加工成符合 Codex 应用动画契约的 8×9 动画精灵pet精灵图集并完成几何验证、视觉 QA 与pet.json打包。读完本文你将掌握如何用轻量 Worker $imagegen系统技能生成九种状态行、用确定性 Python 脚本完成从帧提取到图集合成的全流水线、以及在出现抽帧跳动或身份漂移时如何最小化修复——最终产出可直接被 Codex 应用加载的自定义宠物包。一、技能概述输入、产出与两条纪律hatch-pet位于 skills/.curated/hatch-pet/SKILL.md其设计哲学可以概括为两句话视觉生成全部委托给$imagegen几何与打包全部交给确定性脚本。用户侧输入全部可选技能会自动兜底未提供宠物名从概念、品牌、公司名或参考文件名推断仍无法确定时选择一个简短友好的名字未提供描述从概念或参考图推断未提供参考图先用文本生成基础宠物再以该基础图作为每一行动画的权威参考canonical reference。正常一次宠物运行大约包含10 个视觉生成任务1 个基础宠物base 9 个状态行row-strip。9 个状态对应 Codex 应用契约idle、running-right、running-left、waving、jumping、failed、waiting、running、review。两条硬纪律贯穿始终所有正常视觉生成只能走$imagegen禁止直接调用 Image API、图像 CLI 或任何本地光栅生成器确定性脚本只能处理已经生成好的视觉产物禁止用脚本去填充行输出。二、Codex Pet 应用契约图集与打包格式在开始任何生成之前必须先理解目标格式。详细规格见 references/codex-pet-contract.md 与 references/animation-rows.md。精灵图集Sprite Atlas规格格式PNG 或 WebP尺寸1536x1872网格8 列 × 9 行单元格192x208背景透明未使用的单元格必须完全透明。Webview 动画通过固定行列数计算 CSS background 定位因此不得添加标签、沟槽、边框、网格线、单元格外的阴影或多余帧。九行状态与帧数/时长行 0 为上行 8 为下行状态使用列帧时长0idle0-5280、110、110、140、140、320 ms1running-right0-7每帧 120 ms末帧 220 ms2running-left0-7每帧 120 ms末帧 220 ms3waving0-3每帧 140 ms末帧 280 ms4jumping0-4每帧 140 ms末帧 280 ms5failed0-7每帧 140 ms末帧 240 ms6waiting0-5每帧 150 ms末帧 260 ms7running0-5每帧 120 ms末帧 220 ms8review0-5每帧 150 ms末帧 280 ms每行末帧之后未使用的列必须完全透明。这份行/帧/时长定义同时被 scripts/compose_atlas.py 与 scripts/validate_atlas.py 以常量形式固化如ROW_SPECS、ROW_BY_INDEX是流水线的事实标准。本地自定义宠物包${CODEX_HOME:-$HOME/.codex}/pets/pet-name/ ├── pet.json └── spritesheet.webppet.json清单结构{ id: pet-name, displayName: Pet Name, description: One short sentence., spritesheetPath: spritesheet.webp }应用按${CODEX_HOME:-$HOME/.codex}/pets/下的文件夹名加载自定义宠物CODEX_HOME未设置时回退到$HOME/.codex。三、生成委托只用 $imagegen技能在Generation Delegation一节明确所有正常视觉生成都使用$imagegen。调用前需加载并遵循已安装的图像生成技能安装于 Codex 技能目录下的系统技能${CODEX_HOME:-$HOME/.codex}/skills/.system/imagegen/SKILL.md要点不要直接调用 Image API、image CLI 或任何其他图像生成路径让$imagegen自己选择内置优先路径与回退规则若回退需要确认先询问用户调用$imagegen时把生成的宠物提示词作为权威视觉规范authoritative visual spec提示词应保持简洁、状态特定、面向精灵图生产、并以列出的输入图为基础长篇幅的策略与 QA 规则放在本技能与确定性评审脚本中而不是塞进每个图像提示词不要把提示词包装进通用的$imagegen共享提示词 schema。确定性图像工作布局引导图与提示词准备、已批准的running-left镜像、帧提取、行校验、最终图集合成、联系表与运动预览等 QA 媒体一律由本技能的脚本承担manifest 更新、打包与清理则由父级parent用 shell/jq步骤完成。四、存储控制控制内置图像生成的体积与泄漏内置$imagegen路径会把生成的 PNG 字节写入调用它的 rollout 中即使它同时把文件写到${CODEX_HOME:-$HOME/.codex}/generated_images下。事后删除文件可以减少文件系统占用但无法缩小已经写入的 rollout。因此要把图像生成隔离并有界每个视觉任务只用一个轻量生成 Worker不要把多个 base/row 任务批量塞进同一个 WorkerWorker 最终响应只返回selected_source...和qa_note...不得包含 Markdown 图像预览、base64 或额外视觉附件父级不要逐个打开生成的 PNG 做目检用 Worker QA 处理每个任务只在最终联系表contact sheet上做目检把选中的生成输出复制进decoded/后若原文件位于${CODEX_HOME:-$HOME/.codex}/generated_images删除该原文件并在可能时删除其空的生成目录对存储敏感的全量运行若可用$imagegenCLI 回退路径可询问用户是否采用——该路径需要本地 API 凭据与用户明确确认但可以避免内置图像载荷被嵌入 rollout 事件。五、品牌发现把品牌名变成可用的 mascot 线索当用户只给出品牌/公司/产品/潜在客户名称、而没有具体头像描述或参考图时先运行轻量发现子代理discovery subagent再准备宠物运行。发现 Worker 必须使用网页搜索优先官方来源品牌官网、产品页、文档、About、新闻稿、品牌页官方来源过薄时才使用可靠二手来源搜索范围保持窄——足够提取视觉与人格线索即可不做市场研究简报用户已提供具体 mascot/头像描述或参考图时跳过发现除非用户明确要求品牌调研。发现 Worker 的职责搜索 2-4 个相关来源优先官方页面写一份自适应 Markdown 简报而非僵化的字段堆砌覆盖身份/品类、受众/使用场景、视觉体系、人格/基调、产品/领域母题、mascot 转译线索、规避项、证据/置信度把从来源推断出的 mascot 指导明确标注为 inference不得复制 Logo、可读标记、UI 截图、标语或文本结尾给出紧凑的Generation handoff区块只含brand_name、brand_brief、avatar_seed、avoid、brand_sources不生成图像、不准备运行文件夹、不编辑无关文件。技能提供了完整的发现 Worker 提示词原文见 SKILL.md 的 Brand Discovery 小节核心是输出结构化的交接字段。父级在准备运行前保存 Markdown 简报然后把它通过prepare_pet_run.py的--brand-discovery-file传入并配合--brand-name、--brand-brief、可重复的--brand-source以及基于avatar_seed的简洁--pet-notes当用户未提供更好的头像描述时。完整简报保留用于评审只有紧凑的 handoff 字段才参与塑造提示词。若网页搜索不可用且用户只给了品牌名先向用户索要品牌线索再生成。六、Pet-Safe 样式非像素风格是一等公民默认样式为auto从用户提示词与参考图推断宠物风格并在每一行保持该风格。若用户指定风格则遵从其选择。支持的风格预设与 scripts/prepare_pet_run.py 中STYLE_PRESETS定义一致pixel、plush、clay、sticker、flat-vector、3d-toy、painterly、brand-inspired、auto。各预设均有对应的风格契约描述例如pixel强调厚实轮廓、有限调色板、扁平赛璐璐着色、可见阶梯边缘plush强调圆润缝制形态、绒毛织物质感brand-inspired强调使用已批准的品牌线索但避免可读文本与 Logo 复制。这些契约会被拼进 base 与各行的提示词文本中成为每轮生成时的风格锚点。任何风格只要能保持 pet-safe 都可接受在192x208单元格内可读的紧凑全身剪影所有行之间保持一致的颜面、比例、材质、调色板与道具干净的、可移除的色度键chroma-key背景细节在宠物尺寸下足够大、可辨认无文本、标签、UI 或可读 Logo除非用户显式提供已批准的参考美术并要求加入。七、透明度与效果规则像素级不变式宠物行会被处理成透明的192x208单元格因此每个生成的像素要么属于宠物精灵要么是可干净移除的色度键背景。倾向用姿态、表情与剪影变化而非装饰效果。透明度不变式由确定性光栅流水线负责变为完全透明的像素会被归一化不保留隐藏的 RGB 残留导出文件违反该不变式时图集校验必须失败。不接受用视觉一致来掩盖彩色光晕或透明像素残留。允许的效果必须同时满足效果与状态相关有助于解释动画效果物理附着/接触/重叠在宠物剪影上而非漂浮在附近效果位于与宠物相同的帧槽内不产生独立精灵部件效果不透明、边缘足够硬、可干净提取使用非色度键颜色效果足够小在192x208下保持可读、不杂乱。默认应避免通常会被坏透明背景清理或部件提取的项波浪标记、运动弧线、速度线、拖尾、残影、模糊、涂抹分离的星星、松散的闪光、漂浮的标点/图标、掉落的泪滴、分离的烟雾云、松散灰尘投影/接触阴影/地面阴影/椭圆地板阴影/着地标记/冲击爆点/光晕/圣光/柔和透明效果文本、标签、帧号、可见网格、引导标记、气泡、UI 面板、代码片段、棋盘格透明、白背景、黑背景、风景宠物/道具/效果/高光/阴影中的色度键邻近色散落像素、断开的轮廓碎片、斑点/噪点、被裁切的肢体、重叠姿态、越入相邻帧槽的姿态。状态特定指导来自 SKILL.md 与 scripts/prepare_pet_run.py 的STATE_REQUIREMENTSidle平静低干扰基线。只允许细微呼吸、小眨眼、轻微头/身晃动、很小的材质摆动等安静动作循环仍须有可见微变化不接受六帧几乎相同不得出现挥手、走跑跳、说话、工作、评审、情绪反应、大动作、道具交互或新道具waving仅通过爪子/手/翅膀/肢体姿态表达挥手不画波浪标记、弧线、线条、闪光、符号或漂浮效果jumping仅通过身体位置表达垂直运动不画阴影、灰尘、着地标记、冲击爆点、弹跳垫或地面线索failed眼泪、附着的烟团或附着的星星若符合效果规则则允许不使用红 X 标记、漂浮符号、分离的烟/星、独立泪滴waiting用期待的询问姿态表达Codex 需要批准/帮助/用户输入须与普通 idle 和 review 区分running表达任务工作中的专注处理、思考、扫描、打字、用力集中不得出现字面意义的跑步/慢跑/冲刺/跑步机动作/抬膝/大步/摆臂/方向性移动/速度线/灰尘/地面阴影/运动轨迹/分离运动效果review通过前倾、眨眼、眼睛、头倾或爪/手位置表达专注不加放大镜、纸张、代码、UI、标点、符号或其他新道具除非 base 身份已含running-right/running-left只通过身体、肢体与道具运动表达方向性拖动running-right必须朝右面向并移动running-left朝左循环内步伐必须可见交替而非重复近乎静态的一步不画速度线、灰尘、地面阴影、运动轨迹或分离运动效果。八、可见进度计划让用户看到孵化进度每次运行都维护一个可见清单开始前创建、每次只激活一步、每完成一步更新。正常运行的清单用Pet替换宠物名或your petGettingPetready.准备ImaginingPets main look.构思主形象PicturingPets poses.构思姿态HatchingPet.孵化成型各步骤含义Getting Pet ready.选择或确认宠物名、描述、源图、风格预设、风格笔记与工作文件夹对纯品牌/产品/公司请求先跑品牌发现 Worker 并捕获紧凑品牌简报、源 URL 与 avatar seedImagining Pets main look.生成宠物主参考图成为视觉真值源source of truthPicturing Pets poses.通过轻量 Worker 生成姿态行先做idle与running-right以确认身份与步态只有running-right翻转后明确可行时才镜像running-leftHatching Pet.把已批准姿态变成最终宠物文件检查联系表、预览与校验结果修复破损部件保存pet.json与spritesheet.webp报告输出路径。只有当真实的文件/图像/决策存在时才标记步骤完成。若这是修复运行从第一个相关步骤开始而非重启整个清单。九、默认工作流从运行目录到宠物包9.1 准备运行目录与任务清单SKILL_DIR${CODEX_HOME:-$HOME/.codex}/skills/hatch-pet python $SKILL_DIR/scripts/prepare_pet_run.py \ --pet-name Name \ --description one sentence \ --reference /absolute/path/to/reference.png \ --output-dir /absolute/path/to/run \ --pet-notes stable pet description \ --brand-discovery-file /absolute/path/to/brand-discovery.md \ --brand-name optional researched brand name \ --brand-brief optional compact researched brand cue sentence \ --brand-source https://example.com/source \ --style-preset auto \ --style-notes optional freeform style notes \ --force除表达用户约束所需的标志外以上参数全部可选。纯文本请求通过--pet-notes传入概念并省略--reference脚本会按需推断名称、描述、色度键与输出目录。纯品牌请求先跑发现 Worker 保存简报再传--brand-discovery-file把avatar_seed传给--pet-notes、brand_name传给--brand-name、brand_brief传给--brand-brief、每个源 URL 通过重复--brand-source传入。从源码看 prepare_pet_run.py 还会做这些事推断与落盘infer_name/infer_description/infer_pet_notes依次兜底显式值 → 概念词 → 参考文件名 → 默认名Sprout色度键自动选择--chroma-key支持auto默认或#RRGGBBauto 模式对参考图采样像素从 magenta/cyan/yellow/blue/orange/green 六候选CHROMA_KEY_CANDIDATES中按 1% 分位距离选出最安全键并记入pet_request.json布局引导图为 9 个状态各生成一张references/layout-guides/state.png帧槽描边 蓝色安全区 灰虚线中线安全边距 X18、Y16 像素生成提示词prompts/base-pet.md、prompts/rows/state.md、prompts/row-retries/state.md写入清单pet_request.json与imagegen-jobs.jsonschema_version 1后者记录每个任务的 id/kind/status/depends_on/prompt_file/retry_prompt_file/input_images/output_path/derivation_policy 等。值得注意running-left任务在清单中的derivation_policy被标记为may_derive: true、may_derive_from: running-right、requires_explicit_approval: true而其余非可派生状态waving/jumping/failed/waiting/running/review见NON_DERIVABLE_STATES都要求独立生成自己的动画语义。running-left任务还额外依赖running-right并把decoded/running-right.png列为输入图。base 任务是唯一允许 prompt-only 生成的allow_prompt_only_generation: !reference_inputs每个行任务都强制requires_grounded_generation: true。9.2 读取任务清单找出就绪任务一个任务就绪的条件其status不是complete且depends_on中每个 id 都已完成。直接用jq或编辑器读取清单不要为状态展示额外写辅助脚本jq .jobs[] | {id, kind, status, depends_on, prompt_file, retry_prompt_file, input_images, output_path, derivation_policy} /absolute/path/to/run/imagegen-jobs.json9.3 用轻量 Worker 生成视觉任务先生成并复制base使用轻量 base Worker接着生成并复制idle与running-right作为身份与步态检查每行一个轻量 Worker目检running-right仅当视觉身份、道具位置、标记、光照与方向语义都保持正确时才镜像running-left当镜像会改变含义或身份时用轻量 Worker 正常生成running-left用轻量 Worker 生成其余行每行都使用清单列出的全部输入图。对每个就绪视觉任务以清单中列出的提示词文件、每张列出输入图及其角色标签、默认内置image_gen路径调用$imagegen除非$imagegen自行改道。父级自身图像处理保持最小化不在父 rollout 里逐张开 base/row。Worker 只返回选中源路径与一句 QA 备注父级把选中源路径记入清单。prepare_pet_run.py在references/layout-guides/下生成 9 张逐状态布局引导图行任务把对应引导图作为 layout-only 输入附加以便模型遵循正确帧数、间距、居中和安全留白。这些引导图是隐形构造参考生成的行条不得包含可见的框、边框、中心标记、标签、引导色或引导背景。生成行条时保持行提示词中的身份锁定identity lock为权威从规范 base 保持同样的风格、颜面、标记、调色板、材质、道具设计、身体比例与剪影。行任务默认附加布局引导图与规范 base解码后的 base 保留在运行文件夹供确定性处理而不是作为冗余生成输入发送。若某行返回传输级Bad Request用其生成的retry_prompt_file原样重试一次。重试提示词保留行 id、帧数、色度键、规范 base 身份与状态动作保持规范 base 附加。重试仍失败则停止报告失败行与提示词路径不要切换到其他生成路径。9.4 复制输出并标记任务完成选中某个任务的生成输出后复制到解码输出路径并标记完成对base还要创建规范身份参考RUN_DIR/absolute/path/to/run JOB_IDjob-id SOURCE/absolute/path/to/generated-output.png OUTPUT_REL$(jq -r --arg id $JOB_ID .jobs[] | select(.id $id) | .output_path $RUN_DIR/imagegen-jobs.json) mkdir -p $(dirname $RUN_DIR/$OUTPUT_REL) cp $SOURCE $RUN_DIR/$OUTPUT_RELif [ $JOB_ID base ]; then mkdir -p $RUN_DIR/references; cp $RUN_DIR/$OUTPUT_REL $RUN_DIR/references/canonical-base.png; fiUPDATED_AT$(date -u %Y-%m-%dT%H:%M:%SZ) TMP_MANIFEST$(mktemp) jq --arg id $JOB_ID --arg source $SOURCE --arg at $UPDATED_AT (.jobs[] | select(.id $id)) {status: complete, source_path: $source, completed_at: $at} $RUN_DIR/imagegen-jobs.json $TMP_MANIFEST mv $TMP_MANIFEST $RUN_DIR/imagegen-jobs.json若复制源位于${CODEX_HOME:-$HOME/.codex}/generated_images之下在 decoded 副本存在后删除原生成文件GENERATED_ROOT${CODEX_HOME:-$HOME/.codex}/generated_images case $SOURCE in $GENERATED_ROOT/*) rm -f $SOURCE rmdir $(dirname $SOURCE) 2/dev/null || true ;; esac9.5 条件派生 running-left仅当视觉上安全时派生running-leftpython $SKILL_DIR/scripts/derive_running_left_from_running_right.py \ --run-dir /absolute/path/to/run \ --confirm-appropriate-mirror \ --decision-note why mirroring preserves this pets identity该脚本逐帧槽原位镜像使左行保留右行的时间顺序不要用整条镜像替代那会反转动画时序。从 derive_running_left_from_running_right.py 源码看它强制要求running-right状态为 complete、running-left的mirror_policy.may_derive_from running-right、必须传--confirm-appropriate-mirror与非空--decision-note成功后把running-left标记 complete写入derived_from、mirror_decisiontransform 为framewise-horizontal-mirror-preserving-order与元数据。9.6 确定性图像处理流水线所有任务完成后直接运行图像处理脚本RUN_DIR/absolute/path/to/run mkdir -p $RUN_DIR/final $RUN_DIR/qapython $SKILL_DIR/scripts/extract_strip_frames.py \ --decoded-dir $RUN_DIR/decoded \ --output-dir $RUN_DIR/frames \ --states all \ --method autopython $SKILL_DIR/scripts/inspect_frames.py \ --frames-root $RUN_DIR/frames \ --json-out $RUN_DIR/qa/review.json \ --require-componentspython $SKILL_DIR/scripts/compose_atlas.py \ --frames-root $RUN_DIR/frames \ --output $RUN_DIR/final/spritesheet.png \ --webp-output $RUN_DIR/final/spritesheet.webppython $SKILL_DIR/scripts/validate_atlas.py \ $RUN_DIR/final/spritesheet.webp \ --json-out $RUN_DIR/final/validation.jsonpython $SKILL_DIR/scripts/make_contact_sheet.py \ $RUN_DIR/final/spritesheet.webp \ --output $RUN_DIR/qa/contact-sheet.pngpython $SKILL_DIR/scripts/render_animation_previews.py \ --frames-root $RUN_DIR/frames \ --output-dir $RUN_DIR/qa/previews各脚本要点从源码确认extract_strip_frames.py按pet_request.json中的色度键抠除背景默认--key-threshold 96.0--method auto优先用连通组件components按帧数分组提取失败回退等宽槽slots把每帧居中适配进192x208单元格并写入frames/state/NN.png同时输出frames/frames-manifest.jsoninspect_frames.py检查帧的边界像素、稀疏帧、尺寸离群、色度邻近像素等产出qa/review.json--require-components要求生产行记录组件提取除非有意选用 stable-slots 保持行级播放稳定compose_atlas.py支持从--frames-root或--source-atlas组装按ROW_SPECS把每帧居中粘贴进 8×9 网格导出前用clear_transparent_rgb把全透明像素的 RGB 归零WebP 以无损、quality100、exact 保存从源图集组装时校验宽高比后再决定是否缩放validate_atlas.py校验尺寸精确1536x1872、格式为 PNG/WebP、存在 alpha 通道、已用单元格非空默认--min-used-pixels 50、未用单元格完全透明、无透明像素 RGB 残留并对近不透明已用单元格给出错误/警告结果写入final/validation.json非 ok 时退出码为 1。stable-slots 修正模式若预览 GIF 出现由逐帧 fit-to-cell 提取引起的尺寸跳动/基线跳动而原始行条本身尺度与位置稳定则用显式行稳定模式重新提取并重跑后续全部步骤python $SKILL_DIR/scripts/extract_strip_frames.py \ --decoded-dir $RUN_DIR/decoded \ --output-dir $RUN_DIR/frames \ --states all \ --method stable-slotspython $SKILL_DIR/scripts/inspect_frames.py \ --frames-root $RUN_DIR/frames \ --json-out $RUN_DIR/qa/review.json \ --require-components \ --allow-stable-slotsstable-slots是经 QA 驱动后的有意修正不是默认它应减少提取引起的运动跳动但不能掩盖被裁切的宽姿态或劣质源行条。9.7 目录产出与打包清理前的预期输出run/ pet_request.json imagegen-jobs.json prompts/ decoded/ frames/frames-manifest.json final/spritesheet.webp final/validation.json qa/contact-sheet.png qa/previews/*.gif qa/review.json qa/run-summary.json默认情况下包输出写在运行目录之外CODEX_HOME已设置则用它否则用$HOME/.codex。${CODEX_HOME:-$HOME/.codex}/pets/pet-name/ pet.json spritesheet.webp用 shell 与jq打包RUN_DIR/absolute/path/to/run PET_ID$(jq -r .pet_id $RUN_DIR/pet_request.json) DISPLAY_NAME$(jq -r .display_name $RUN_DIR/pet_request.json) DESCRIPTION$(jq -r .description $RUN_DIR/pet_request.json) PET_DIR${CODEX_HOME:-$HOME/.codex}/pets/$PET_ID mkdir -p $PET_DIR cp $RUN_DIR/final/spritesheet.webp $PET_DIR/spritesheet.webp jq -n --arg id $PET_ID --arg displayName $DISPLAY_NAME --arg description $DESCRIPTION {id: $id, displayName: $displayName, description: $description, spritesheetPath: spritesheet.webp} $PET_DIR/pet.json打包后写qa/run-summary.jsonjq -n --arg run_dir $RUN_DIR --arg spritesheet $RUN_DIR/final/spritesheet.webp --arg validation $RUN_DIR/final/validation.json --arg contact_sheet $RUN_DIR/qa/contact-sheet.png --arg review $RUN_DIR/qa/review.json --arg package $PET_DIR {ok: true, run_dir: $run_dir, spritesheet: $spritesheet, validation: $validation, contact_sheet: $contact_sheet, review: $review, package: $package} $RUN_DIR/qa/run-summary.json9.8 视觉 QA 与清理确定性图像处理之后用轻量视觉 QA Worker 目检qa/contact-sheet.png与qa/previews/*.gif再接受宠物。确定性校验是必要条件但不是充分条件。以下情况阻塞验收任何行意外改变物种/体型、颜面、标记、调色板、材质、道具设计、风格、道具朝向或整体剪影运动预览出现非预期尺寸跳动、方向步伐反转或停滞、错误朝向idle 循环技术上不同但视觉上惰性。模型视觉 QA 接受联系表后清理中间运行产物保留pet_request.json、final/spritesheet.webp、final/validation.json、qa/contact-sheet.png、qa/previews/、qa/review.json、qa/run-summary.json移除生成的提示词文件、布局引导图、decoded 行条、提取帧、final/spritesheet.png、imagegen 任务清单用户需要调试产物或运行仍需修复时跳过清理。十、轻量视觉 Worker 与子代理委派图像密集工作默认使用轻量子代理subagent把每个$imagegenrollout 约束为一张选中图、让联系表视觉载荷远离父线程在保持完整 9 状态应用契约的同时降低成本。除非用户明确禁止本运行使用子代理。若用户未允许子代理或意图含糊先征求许可再并行派发。父级职责品牌发现 Worker纯品牌请求时→ 准备运行并检查imagegen-jobs.json→ 把 base 任务、行任务与最终联系表 QA 派给轻量 Worker → 把选中 Worker 输出复制到 decoded 路径并在清单标记完成 → 创建references/canonical-base.png→ 批准时运行running-left镜像派生 → 运行确定性图像处理、打包、修复再生成与清理。base Worker 职责只处理base任务读prompts/base-pet.md并使用列出的参考图只用$imagegen提示词中的品牌启发行仅作为宽泛视觉/人格指导不复制 Logo、可读标记、UI 截图、标语或文本只返回selected_source与qa_note。行 Worker 职责恰处理一行任务读行提示词并使用全部列出输入图只用$imagegen不本地绘制/编辑/平铺/合成精灵快速目检帧数、身份、色度背景、间距、裁切与分离效果强制行提示词的透明度与效果规则无分离效果、waving无波浪标记、方向行无速度线/灰尘、非方向running行无字面跑步、仅允许状态提示词允许的附着不透明泪/烟/星只返回selected_source与qa_note。最终视觉 QA Worker 职责目检qa/contact-sheet.png与qa/previews/行 GIF可用qa/review.json与final/validation.json作为文本上下文验证 9 行全部匹配 Codex 应用状态契约且同一宠物身份返回紧凑结果visual_qapass|fail与行级修复备注不编辑文件、不排队修复、不打包、不清理。Worker 模型选择品牌发现偏好较小且有能力的模型返回紧凑研究简报而非编排视觉 Worker 偏好较小且有能力的模型如gpt-5.4-mini中等推理若支持模型覆盖父/默认模型仅用于编排或在无更小 Worker 模型时使用同时最多两个生成 Worker 活跃除非用户明确要求更高并行度最终视觉 QA 在确定性处理后作为单个 Worker 运行结果被消费后关闭 Worker。技能为 base Worker、行 Worker 与最终视觉 QA Worker 各提供了完整提示词模板见 SKILL.md 的 Subagent Delegation 小节包括精确的返回字段base/行 Worker 返回selected_source/absolute/path/to/selected-output.png与qa_noteone sentence最终 QA Worker 返回visual_qapass|fail、qa_noteone sentence summary、repair_rowscomma-separated row ids, or none、repair_notesshort row-specific notes, or none并按 0-8 行序idle、running-right、running-left、waving、jumping、failed、waiting、running、review确认身份一致性。十一、修复工作流最小作用域优先若帧检查或最终视觉 QA 失败读qa/review.json重新生成最小失败作用域把替换行复制到同一 decoded 输出路径保持该任务 complete 状态并更新新的source_path与completed_at。修复失败的行而非整张表。身份修复以规范 base 图、原始参考、联系表与精确行失败备注作为 grounding 上下文给行 Worker 现有行提示词加一条来自qa/review.json的紧凑修复备注保持规范宠物身份与所选风格提取引起的运动跳动不要先重新生成图像。若源行条本身行级尺度与基线稳定用--method stable-slots重跑确定性流水线、用--allow-stable-slots检查再复查预览 GIF仅当原始行条本身被裁切、不稳定或语义错误时才重新生成该行。修复优先级与 references/qa-rubric.md 的 Repair Policy 一致单帧坏帧 → 单行 → 仅在身份或布局广泛损坏时整表再生成正常生产路径只重新生成受影响行并复制到同一 decoded 路径除非 base 角色本身错误。十二、规则清单与验收标准技能以一组明确规则约束行为详见 SKILL.md 的 Rules 小节核心包括$imagegen是唯一视觉生成层禁止调用图像 API、图像 CLI、本地光栅生成器或一次性生成脚本品牌/产品/公司/潜在客户请求无具体头像描述或参考图必须先品牌发现且只把紧凑简报传入运行尽量保持参考图对$imagegen可见/附加每行任务都附加references/layout-guides/state.png作为 layout-only 引导拒绝复制引导像素的输出默认用轻量视觉 Worker 处理 base、行条与最终联系表 QA父级拥有 manifest 更新、确定性图像脚本、打包与清理每个正常视觉任务都用$imagegen生成base 除已批准running-left镜像外的所有行条只有 base 任务可 prompt-only每个行任务必须附加其列出的 grounding 图先生成running-right再决定running-left是否可镜像镜像时通过确定性脚本保持帧序与时序语义不从未知状态派生/复用waiting、running、failed、review、jumping、waving——每个都有独立应用语义必须作为自己的行生成绝不用本地绘制/平铺/变换/代码生成的行条替代缺失的$imagegen输出只有选中输出已复制进 decoded 路径后才标记任务完成不依赖生成图做精确图集几何使用本技能的确定性图像脚本使用pet_request.json中存储的色度键不强制固定绿幕所有行保持剪影、颜面、材质、调色板、风格与道具一致即使qa/review.json与final/validation.json无错误视觉身份/风格漂移仍是阻塞项联系表出现裁切参考、重复平铺、白色单元格背景或非精灵碎片视为失败预览 GIF 出现提取尺寸跳动、方向时序反转、错误朝向或惰性 idle 循环视为失败禁用的分离效果、色度键邻近伪影、阴影、光晕、涂抹、灰尘、着地标记、波浪标记、速度线或运动轨迹均判失败行qa/review.json错误是阻塞项警告需视觉复核。验收标准Acceptance Criteria最终图集为 PNG 或 WebP1536x1872支持透明基于192x208单元格已用单元格非空未用单元格完全透明图集遵循references/animation-rows.md的行/帧数联系表与逐行动画预览已由轻量视觉 QA Worker 生成并检查qa/review.json无错误逐行复核确认动画循环对 Codex 应用足够完整运动预览无非预期尺寸跳动、方向步伐反转或错误行语义非像素风格在宠物尺寸可读且跨行一致时被接受${CODEX_HOME:-$HOME/.codex}/pets/pet-name/pet.json与spritesheet.webp作为自定义宠物一并就位。十三、技能目录速览与进一步阅读hatch-pet技能包完整文件布局主文档skills/.curated/hatch-pet/SKILL.md参考规范references/animation-rows.md九行状态与时长、references/codex-pet-contract.md图集与包格式、references/qa-rubric.md几何/一致性/动画/应用适配评审与修复策略确定性脚本prepare_pet_run.py运行准备、extract_strip_frames.py帧提取、inspect_frames.py帧检查、compose_atlas.py图集合成、validate_atlas.py图集校验、derive_running_left_from_running_right.py向左镜像派生、make_contact_sheet.py联系表、render_animation_previews.py运动预览整体而言Hatch Pet 把创意生成与工业级装配清晰解耦前者由$imagegen 轻量 Worker 高并发产出后者由确定性 Python 脚本保证1536x1872图集几何、透明度不变式与 QA 可审计性。只要守住只用$imagegen生成、只用脚本处理已有产物、逐帧镜像保持时序、最小作用域修复这几条纪律就能稳定孵化出可直接交付 Codex 应用的自定义动画宠物。【免费下载链接】skillsSkills Catalog for Codex项目地址: https://gitcode.com/GitHub_Trending/skills4/skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考