从 AdMapix API 拉取广告创意、应用、榜单和收入预估等数据,原样返回结构化 JSON。
数据分析
plugin-creator
试用为 Codex 生成插件目录骨架,包含 .codex-plugin/plugin.json 清单和可选的 marketplace 条目。
它能做什么
通过 Python 脚手架脚本创建插件目录,生成 .codex-plugin/plugin.json 清单,内含完整 schema 结构、占位值和完整的 interface 段。插件名会按 skill-creator 命名规则归一化为小写连字符形式(不超过 64 字符),目录名与清单中的 name 始终一致。可选参数可额外生成 skills/、hooks/、scripts/、assets/、.mcp.json、.app.json,以及仓库根目录下的 .agents/plugins/marketplace.json 条目。
什么时候用它
- 从零创建仓库内的 Codex 插件
- 为已有插件补充 skills、hooks、scripts、assets、MCP 或 app 目录
- 生成或更新 .agents/plugins/marketplace.json 条目以控制 Codex 界面排序
- 在 ~/plugins 下搭建 home-local 插件并同步 ~/.agents/plugins/marketplace.json
技能文档
Plugin Creator
Quick Start
- Run the scaffold script:
# Plugin names are normalized to lower-case hyphen-case and must be <= 64 chars.
# The generated folder and plugin.json name are always the same.
# Run from repo root (or replace .agents/... with the absolute path to this SKILL).
# By default creates in /plugins/.
python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py
-
Open
/.codex-plugin/plugin.jsonand replace[TODO: ...]placeholders. -
Generate or update the repo marketplace entry when the plugin should appear in Codex UI ordering:
# marketplace.json always lives at /.agents/plugins/marketplace.json
python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin --with-marketplace
For a home-local plugin, treat `` as the root and use:
python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin \
--path ~/plugins \
--marketplace-path ~/.agents/plugins/marketplace.json \
--with-marketplace
- Generate/adjust optional companion folders as needed:
python3 .agents/skills/plugin-creator/scripts/create_basic_plugin.py my-plugin --path \
--with-skills --with-hooks --with-scripts --with-assets --with-mcp --with-apps --with-marketplace
is the directory where the plugin folder will be created (for example ~/code/plugins).
What this skill creates
- If the user has not made the plugin location explicit, ask whether they want a repo-local plugin or a home-local plugin before generating marketplace entries.
- Creates plugin root at
///. - Always creates
///.codex-plugin/plugin.json. - Fills the manifest with the full schema shape, placeholder values, and the complete
interfacesection. - Creates or updates
/.agents/plugins/marketplace.jsonwhen--with-marketplaceis set.- If the marketplace file does not exist yet, seed top-level
nameplusinterface.displayNameplaceholders before adding the first plugin entry.
- If the marketplace file does not exist yet, seed top-level
- `` is normalized using skill-creator naming rules:
My Plugin→my-pluginMy--Plugin→my-plugin- underscores, spaces, and punctuation are converted to
- - result is lower-case hyphen-delimited with consecutive hyphens collapsed
- Supports optional creation of:
skills/hooks/scripts/assets/.mcp.json.app.json
Marketplace workflow
marketplace.jsonalways lives at/.agents/plugins/marketplace.json.- For a home-local plugin, use the same convention with `` as the root:
~/.agents/plugins/marketplace.jsonplus./plugins/. - Marketplace root metadata supports top-level
nameplus optionalinterface.displayName. - Treat plugin order in
plugins[]as render order in Codex. Append new entries unless a user explicitly asks to reorder the list. displayNamebelongs inside the marketplaceinterfaceobject, not individualplugins[]entries.- Each generated marketplace entry must include all of:
policy.installationpolicy.authenticationcategory
- Default new entries to:
policy.installation: "AVAILABLE"policy.authentication: "ON_INSTALL"
- Override defaults only when the user explicitly specifies another allowed value.
- Allowed
policy.installationvalues:NOT_AVAILABLEAVAILABLEINSTALLED_BY_DEFAULT
- Allowed
policy.authenticationvalues:ON_INSTALLON_USE
- Treat
policy.productsas an override. Omit it unless the user explicitly requests product gating. - The generated plugin entry shape is:
{
"name": "plugin-name",
"source": {
"source": "local",
"path": "./plugins/plugin-name"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
-
Use
--forceonly when intentionally replacing an existing marketplace entry for the same plugin name. -
If
/.agents/plugins/marketplace.jsondoes not exist yet, create it with top-level"name", an"interface"object containing"displayName", and apluginsarray, then add the new entry. -
For a brand-new marketplace file, the root object should look like:
{
"name": "[TODO: marketplace-name]",
"interface": {
"displayName": "[TODO: Marketplace Display Name]"
},
"plugins": [
{
"name": "plugin-name",
"source": {
"source": "local",
"path": "./plugins/plugin-name"
},
"policy": {
"installation": "AVAILABLE",
"authentication": "ON_INSTALL"
},
"category": "Productivity"
}
]
}
Required behavior
- Outer folder name and
plugin.json"name"are always the same normalized plugin name. - Do not remove required structure; keep
.codex-plugin/plugin.jsonpresent. - Keep manifest values as placeholders until a human or follow-up step explicitly fills them.
- If creating files inside an existing plugin path, use
--forceonly when overwrite is intentional. - Preserve any existing marketplace
interface.displayName. - When generating marketplace entries, always write
policy.installation,policy.authentication, andcategoryeven if their values are defaults. - Add
policy.productsonly when the user explicitly asks for that override. - Keep marketplace
source.pathrelative to repo root as./plugins/.
Reference to exact spec sample
For the exact canonical sample JSON for both plugin manifests and marketplace entries, use:
references/plugin-json-spec.md
Validation
After editing SKILL.md, run:
python3 /scripts/quick_validate.py .agents/skills/plugin-creator
常见问题
- 脚手架具体会生成什么?
- 生成插件根目录,其中包含 .codex-plugin/plugin.json,带有完整 schema 结构和 [TODO: ...] 占位值;同时按参数生成可选目录,例如 --with-skills、--with-hooks、--with-scripts、--with-assets、--with-mcp、--with-apps。
- 插件名是怎么处理的?
- 按 skill-creator 命名规则归一化:下划线、空格和标点转为连字符,连续连字符合并,结果为小写连字符分隔且不超过 64 字符。外层目录名与 plugin.json 中的 name 始终是同一个归一化名称。
- 生成的 marketplace 条目包含哪些字段?
- 每条都包含 policy.installation(默认 AVAILABLE)、policy.authentication(默认 ON_INSTALL)和 category,source.path 保持为相对仓库根目录的 ./plugins/。除非明确要求产品门控,否则不写 policy.products;--force 仅用于有意替换同名已有条目。
相关技能
把自然语言描述转为结构化 JSON,并由 mcp-diagram-generator MCP 服务生成 Draw.io、Mermaid 或 Excalidraw 图表文件。
把 git 历史变成人-文件所有权图谱,算出巴士因子与敏感代码风险。
Deploy web projects to Netlify using the Netlify CLI (`npx netlify`). Use when the user asks to deploy, host, publish, or link a site/repo on Netlify, including preview and production deploys.
sentry
官方Use when the user asks to inspect Sentry issues or events, summarize recent production errors, or pull basic Sentry health data via the Sentry CLI; perform read-only queries using the `sentry` command
OpenAI 的更多技能
浏览全部技能为 ChatGPT Apps SDK 项目生成 MCP 服务器与 widget UI 脚手架,并支持重构与排错。
复用 Figma 文件中已发布的设计系统组件、变量与样式,创建或更新整页屏幕。
按阶段把代码库转成 Figma 设计系统,每个阶段都有你确认的检查点。
在 Figma 文件里执行 JavaScript 调用 Plugin API,创建、修改和读取节点。
根据概念、品牌线索或参考图,生成 Codex 可用的动画宠物精灵图集。
imagegen
官方为项目生成或编辑位图图像,并把选定的成品保存到工作区。