AgentSkillsCN

chatgpt-app-builder

指导开发者高效创建ChatGPT应用。 全面覆盖应用生命周期:依据用户体验设计准则进行头脑风暴,启动项目雏形,集成各类工具与组件,调试问题,运行开发服务器,部署应用并将其接入ChatGPT。 适用于用户希望创建或更新ChatGPT应用/ChatGPT MCP服务器,或使用Skybridge框架时使用。

SKILL.md
--- frontmatter
name: chatgpt-app-builder
description: |
  Guide developers through creating ChatGPT apps.
  Covers the full lifecycle: brainstorming ideas against UX guidelines, bootstrapping projects, implementing tools/widgets, debugging, running dev servers, deploying and connecting apps to ChatGPT.
  Use when a user wants to create or update a ChatGPT app / MCP server for ChatGPT, or use the Skybridge framework.

Creating ChatGPT Apps

ChatGPT apps are conversational experiences that extend ChatGPT through tools and custom UI widgets. They're built as MCP servers invoked during conversations.

⚠️ The app is consumed by two users at once: the human and the ChatGPT LLM. They collaborate through the widget—the human interacts with it, the LLM sees its state. Internalize this before writing code: the widget is your shared surface.

SPEC.md keeps track of the app's requirements and design decisions. Keep it up to date as you work on the app.

Setup

  1. Discoverdiscover.md: when user has an idea but no SPEC.md yet
  2. Copy templatecopy-template.md: when starting a new project with ready SPEC.md
  3. Run locallyrun-locally.md: when ready to test, need dev server or ChatGPT connection

Architecture

Design or evolve UX flows and API shape → architecture.md

Implementation

  • Fetch and render datafetch-and-render-data.md: when implementing server handlers and widget data fetching
  • State and contextstate-and-context.md: when persisting widget UI state and updating LLM context
  • Prompt LLMprompt-llm.md: when widget needs to trigger LLM response
  • Style and localizestyle-and-localize.md: when adapting to theme, layout, locale, or device capabilities
  • Display modescontrol-display-modes.md: when switching between inline, PiP, fullscreen, or modal
  • External linksopen-external-links.md: when redirecting to external URLs or setting "open in app" target

Full API docs: https://docs.skybridge.tech/api-reference.md