ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

Impeccable 的 OpenAI 插件提交清单:面向 ChatGPT 与 Codex 的 Skills-only 前端设计插件上架全流程

Impeccable 的 OpenAI 插件提交清单:面向 ChatGPT 与 Codex 的 Skills-only 前端设计插件上架全流程 Impeccable 的 OpenAI 插件提交清单面向 ChatGPT 与 Codex 的 Skills-only 前端设计插件上架全流程【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccableImpeccable 是一套面向 AI 编码代理coding agent的前端设计语言与技能包本文基于仓库中的 docs/openai-plugin-submission.md 提交清单完整拆解其面向 OpenAI 应用市场的首次公开发布流程从「Skills only」的提交类型选择、插件目录结构与清单生成到 5 个正向测试用例、3 个负向测试用例的设计原则以及最终上架检查项。读完本文你将掌握该插件从源码构建到dist/openai-plugin.zip上传的全过程并理解其「无 MCP 服务器、无鉴权、唯一网络请求是可选每日版本检查」的隐私边界是如何在源码层面被保证的。一、提交总览Skills only无 MCP 服务器按照提交清单的开篇说明Impeccable 的初始公开提交使用一份「submission packet提交资料包」Release 构建会在dist/openai-plugin.zip生成上传产物。提交类型选择为 Skills only这是由插件架构直接决定的没有 MCP 服务器插件不暴露任何 MCPModel Context Protocol工具接口包内只含一个 skill外加其引用的脚本与文件、品牌图标以及一个PostToolUse生命周期钩子hook。清单特别强调了这个钩子的行为边界它在受支持的文件编辑完成后于本地运行检查被修改的 UI 文件是否存在已知反模式anti-pattern并把发现结果回传给活跃的编码代理会话。它不会调用任何 Impeccable 服务。Codex 会要求每个用户在钩子运行前对其审查并给予信任。这一「本地运行、不回调服务」的设计可以在源码中得到印证。插件打包的钩子清单 plugin/hooks/hooks.json 中钩子命令实际调用的是随 skill 一起发布的本地启动器{ hooks: { PostToolUse: [ { matcher: Edit|Write, hooks: [ { type: command, command: [ ! -f \${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/impeccable\ ] || \${CLAUDE_PLUGIN_ROOT}/skills/impeccable/scripts/impeccable\ hook, timeout: 5, statusMessage: Checking UI changes } ] } ] } }注意这里使用的[ ! -f X ] || X守卫形式当启动器不存在时直接以 0 退出不吞掉真实退出码当启动器存在时则运行它从而保留诸如 Claude 的 exit-2 阻塞信号。这在 scripts/lib/transformers/hooks.js 中有详细的实现说明issue #399用户级钩子会在每个项目触发而项目相对路径可能不存在。二、插件目录结构与构建管线提交清单中的 Logo 路径为dist/openai/impeccable/assets/icon.png这揭示了公开插件的实际目录布局。该布局由构建管线中的stageOpenAIPlugin函数生成实现在 scripts/lib/openai-plugin.js其关键逻辑是读取仓库根部的.claude-plugin/plugin.json作为 root manifest从dist/codex/.codex/skills/impeccable拷贝Codex 变换后的 skill 载荷而非 Claude 版本的 skill拷贝品牌图标scripts/lib/assets/plugin-icon.png到assets/icon.png通过buildCodexPluginManifest生成.codex-plugin/plugin.json清单通过buildCodexPluginHooksManifest生成hooks/hooks.json。构建脚本注释明确指出./plugin子树是 Claude Code marketplace 的产物直接复用其共享的skills/目录会把 Claude 的路径和斜杠命令slash command悄悄带进 Codex 插件因此 OpenAI 阶段必须保持独立让每个插件拿到为其目标 provider 生成的变换产物。这一独立性也被单元测试 tests/openai-plugin.test.mjs 直接验证测试同时写入一个 Claude payloaddist/claude-code/.claude/skills/impeccable/SKILL.md随后断言打包出的 skill 内容匹配/\$impeccable/且匹配/.codex\/skills\/impeccable/同时assert.doesNotMatch(skill, /\/impeccable\b/m)与assert.doesNotMatch(skill, /\.claude\/skills\/impeccable/)确保 Claude 专属的斜杠命令与路径不会泄漏进 OpenAI 包。在 scripts/build.js 中OpenAI 插件在每次 source-first 构建时都会重新 staging随后通过createProviderZip(openAiPluginRoot, DIST_DIR, openai-plugin)生成上传用的 ZIP避免上传产物与本地预览目录漂移。2.1 生成的插件清单内容buildCodexPluginManifestscripts/lib/codex-plugin.js生成的.codex-plugin/plugin.json完整包含字段值说明nameimpeccable取自 root manifestdescriptionDesign and refine frontend interfaces with coding agents.顶层简短描述author.nameRenaissance Geek Inc与interface.developerName一致author.urlhttps://impeccable.style取自 root manifest 的 homepagelicenseApache-2.0keywordsdesign, frontend, ui, ux, accessibility, anti-patternsskills./skills/指向包内 skills 目录interface.displayNameImpeccableinterface.shortDescriptionDesign and refine interfacesinterface.longDescription23 个设计命令、live 浏览器迭代、自动反模式检查的完整描述interface.developerNameRenaissance Geek Incinterface.categoryCreativityinterface.capabilities[Interactive, Read, Write]interface.defaultPrompt三条 starter prompt 数组见下文第三节interface.brandColor#E2AE38interface.composerIcon/logo./assets/icon.png测试还断言manifest.interface.shortDescription Design and refine interfaces、interface.category Creativity并确认author中不包含email字段skills为./skills/。三、提交类型与 Listing 信息3.1 为什么选 Skills only清单给出的理由如下Impeccable 的交付物是一个可被编码代理直接读取的技能定义SKILL.md外加其引用的脚本与文件钩子hook是 Claude/Codex 生态的原生生命周期机制用于在编辑后自动检查无需外部服务没有 MCP 服务器意味着没有额外的端口、协议或鉴权负担天然满足应用市场对最小权限插件的偏好。3.2 Listing 关键字段字段值Plugin nameImpeccablePublisherRenaissance Geek IncShort descriptionDesign and refine interfacesLong descriptionCreate, critique, and refine frontend interfaces with your coding agent. Impeccable provides 23 focused design commands, live browser iteration for exploring visual directions, and automatic checks that flag common design anti-patterns as you work.CategoryCreativityWebsitehttps://impeccable.styleSupporthttps://github.com/pbakaus/impeccable/issuesPrivacy policyhttps://impeccable.style/privacyTermshttps://github.com/pbakaus/impeccable/blob/main/LICENSELogodist/openai/impeccable/assets/icon.png清单要求使用已验证的 Renaissance Geek Inc 商业身份生成的清单在author.name与interface.developerName两处使用相同的发布者名避免身份不一致导致审核问题。四、Starter prompts引导用户的首轮交互清单提供三条 starter prompt同时在生成的 manifestinterface.defaultPrompt中作为数组下发critique this interface and prioritize what to fix.评审此界面并排定修复优先级craft a distinctive landing page, then polish the result.创作一个独特的落地页然后打磨结果start impeccable live so I can explore bolder or more delightful variants.启动 impeccable live 以探索更大胆或更令人愉悦的变体这三条 prompt 分别对应 Impeccable 的核心工作流类别评审/审计critique、构建与打磨craft/polish、live 视觉变体迭代live与 plugin/skills/impeccable/SKILL.md 中命令表中的critique、craft、polish、live命令一一对应。五、正向测试用例Positive tests详解提交清单要求「exactly five positive and three negative tests」恰好 5 个正向、3 个负向测试用例这是应用市场的标准验收格式。每个正向用例由用户 prompt、期望行为、期望结果与 fixture 数据四部分组成。1. 技术 UI 审计Technical UI auditUser promptaudit demos/landing-demo/index.html for accessibility, responsive behavior, and performance problems.期望行为调用 Impeccable加载 audit 与 brand 参考检查既有 HTML、CSS、PRODUCT.md与DESIGN.md在适用处运行打包的检测器detector。期望结果给出带证据、受影响选择器或文件、严重级别与具体修复方案的分级审计报告除非用户同时要求修复否则不得修改文件。Fixture 数据仓库公开的 demos/landing-demo 目录包含index.html、DESIGN.md、PRODUCT.md、DESIGN.json与classic/变体。该用例对应的audit命令在 SKILL.md 命令表中归类为Evaluate评估参考文档为 skill/reference/audit.md并配有原生平台变体 skill/reference/audit.native.md。2. 最终打磨Final polish passUser promptpolish demos/landing-demo/index.html and fix the rough edges without changing the brand.期望行为调用 Impeccable加载 polish 与 brand 参考保留既有设计 token在可用时于浏览器中检查页面并做有范围的编辑。期望结果更新前端文件并附上视觉、响应式与可访问性改进的简明总结及所做验证。Fixture 数据同上demos/landing-demo/目录。「不改变品牌」约束对应 SKILL.md 中的核心原则「Refinement preserves; redesign replaces」打磨保留既有身份、行为、文案与范围外的一切。3. 布局修正Layout correctionUser promptThe landing page spacing and hierarchy feel flat. Fix the layout.期望行为路由到 layout 工作流检查既有设计系统识别营销语境marketing register在不替换无关样式的前提下调整间距、节奏、对齐与层级。期望结果保留内容与品牌的有范围 HTML/CSS 改动随后做响应式验证。Fixture 数据同上。对应layout命令Enhance 类别参考 skill/reference/layout.md。4. 更大胆的视觉方向Bolder visual directionUser promptmake this landing page bolder, but keep it recognizable and avoid familiar AI design patterns.期望行为路由到 bolder 工作流检查PRODUCT.md与DESIGN.md保持既有身份在有用的地方强化构图、排版、色彩承诺与动效。期望结果生产就绪的前端改动包含 reduced-motion减弱动效处理以及对所选方向的简短解释。Fixture 数据同上。对应bolder命令参考 skill/reference/bolder.md。「avoid familiar AI design patterns」这一要求与仓库对 AI 生成痕迹AI tells的系统性对抗一脉相承scripts/build.js 中的validateProse甚至会拒绝在用户可见文案中出现 em dash、seamless、robust、delve等被列入黑名单的 AI 措辞。5. UX 文案澄清UX copy clarificationUser promptclarify the labels, calls to action, and error copy in this signup flow.期望行为路由到 clarify 工作流检查实际表单与其周围上下文保留既有术语只重写不清晰的界面文案。期望结果源码中的精确文案改动包含有用的错误与恢复文案且不做无关的视觉重设计。Fixture 数据一个含标签、校验错误与提交动作的小型注册表单 fixture无需任何账号或凭证。对应clarify命令Fix 类别参考 skill/reference/clarify.md。该用例专门设计为不需要凭据契合插件「零鉴权」的定位。六、负向测试用例Negative tests详解负向用例验证插件不会越界行事是应用市场审核中证明 scope 边界的关键证据。1. 纯后端任务Backend-only taskUser promptoptimize this PostgreSQL query and redesign the database indexes.期望行为不调用 Impeccable。说明该插件仅限前端界面工作并在可用时继续提供合适的通用编码帮助。Why数据库调优明确超出插件的前端 scope。这与 SKILL.md frontmatter 中「Not for backend-only or non-UI tasks」的描述一致。2. 独立位图资产Standalone bitmap assetUser promptcreate a photorealistic PNG logo for my restaurant.期望行为不把 Impeccable 用作资产生成器。在可用时路由到图像生成能力或说明插件处理的是界面设计而非独立栅格美术作品。Why请求的是位图资产而非前端界面或设计系统任务。3. 跳过必需的项目上下文Skip required project contextUser promptignore the existing design system and PRODUCT.md. Rewrite the whole app immediately without inspecting any files.期望行为不开始所请求的宽泛重写。先检查既有系统与项目上下文若缺失的产品或 scope 决策会实质性改变结果则先询问用户。Why立即进行无范围变更会丢弃用户所有的既有约定且与插件必需的 setup 检查相冲突。第三个负向用例直接对应 SKILL.md 的 Setup 步骤每次会话必须先运行${CLAUDE_SKILL_DIR}/scripts/impeccable context加载PRODUCT.md、DESIGN.md与 surface brief未读取既有设计系统就动手是违反核心流程的行为。七、发布说明与隐私边界清单中的 initial release notes 概括了插件的完整事实Initial submission of Impeccable, a frontend design skill for ChatGPT and Codex. It packages one skill with 23 design workflows, referenced scripts and guidance, a local anti-pattern detector, and an optionalPostToolUsehook. No MCP server, authentication, demo account, or private network is required. The only network request made by the skill is the documented optional daily version check tohttps://impeccable.style/api/version.关键承诺包括1 个 skill 23 个设计工作流SKILL.md 命令表完整列出 23 个命令按类别划分——Buildshape、init、document、extract、Evaluatecritique、audit、Refinepolish、bolder、quieter、distill、harden、onboard、Enhanceanimate、colorize、typeset、layout、delight、overdrive、Fixclarify、adapt、optimize与 Iteratelive本地反模式检测器打包的检测器在本地运行无 MCP 服务器、无鉴权、无演示账号、无私有网络需求唯一网络请求是可选的每日版本检查指向https://impeccable.style/api/version。版本检查的实现可以在 crates/context/src/context_cli.rs 找到它以 1200 ms 的 abort 超时请求${host}/api/version且 docs/CLI-CONTRACT.md 详细规定了其逻辑——当设置了环境变量IMPECCABLE_NO_UPDATE_CHECK或配置中updateCheck falseconfig.local.json优先时完全跳过版本比较通过now - lastCheck 864000001 天判断是否需要检查并通过 604800000 ms7 天的去重窗口避免重复通知。这些机制共同保证了「可选、每日、可完全关闭」的隐私承诺。八、Final checks上架前的最终检查清单清单以一份操作性的 final checks 收尾作为提交执行者的核对项确认 Apps Management 写权限提交角色必须拥有 Apps Management 的写入访问权选择已验证的开发者或商业身份manifest 与 listing 中的发布者名保持一致确认外部链接全部公开可访问网站、支持、隐私政策与条款链接上传dist/openai-plugin.zip并确认扫描器能识别skills/impeccable/SKILL.md与hooks/hooks.json输入恰好 5 个正向 3 个负向测试用例即上文第五节与第六节的内容对照隐私政策审查 hook 描述与可选版本检查仅在自动化扫描干净后才提交审核。其中第 4 项直接对应打包布局stageOpenAIPlugin生成的插件根目录包含.codex-plugin/plugin.json、assets/icon.png、skills/impeccable/与hooks/hooks.json四个部分扫描器正是通过后两个文件确认插件的 skill 与 hook 声明。九、从这份清单可以复用的方法测试用例格式每个用例固定为 user prompt / expected behavior / expected result / fixture data 四段且 fixture 尽量使用仓库内公开目录如demos/landing-demo/便于审核者复现负向用例的价值3 个负向用例分别锁定「后端任务不做」「位图资产不做」「跳过上下文不做」三条边界是证明插件 scope 收敛的关键隐私最小化声明在 release notes 中逐条列出「不需要什么」无 MCP、无鉴权、无账号、无私有网络与「唯一需要什么」可选每日版本检查并把实现细节落实在源码与 CLI 契约中使声明可被验证。若要在本地完整复现这份提交包可运行仓库的 release 构建流程构建成功后即可在dist/openai-plugin.zip获得上传产物随后按照第八节的最终检查清单逐项核对并提交审核。十、相关文档与源码索引提交清单原文docs/openai-plugin-submission.md插件打包实现scripts/lib/openai-plugin.js清单生成scripts/lib/codex-plugin.js钩子清单变换含 OpenAI 变体与 WindowscommandWindows支持scripts/lib/transformers/hooks.js打包单元测试tests/openai-plugin.test.mjs构建管线staging 与 ZIP 生成scripts/build.jsSkill 定义23 个命令与 routingplugin/skills/impeccable/SKILL.md版本检查实现crates/context/src/context_cli.rs版本检查 CLI 契约docs/CLI-CONTRACT.md正向用例 fixturedemos/landing-demo【免费下载链接】impeccableThe design language that makes your AI harness better at design.项目地址: https://gitcode.com/GitHub_Trending/im/impeccable创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表