Ladder Pick Development Plan

Ladder Pick — ChatGPT App Development Plan#

  • Project name: ted-mcp-servers
  • App name (App Directory display): Ladder Pick
  • App language: English first (UI / tool description / privacy policy all in English; only the plan document is in Korean)

Core Documents (Must-Read)#

Design#

Build#

Deployment / Testing / Submission#

Guides / References#

General References#


Goals#

  • Build a “Ladder Pick” app that can be listed on the ChatGPT App Directory.
  • Enable the complete flow — entering participants / items → generating a ladder (random matching) → revealing results — through an interactive widget (iframe) within a chat.
  • After testing with ChatGPT Developer Mode, the ultimate goal is App Directory submission / approval / Publish.

Assumptions / Scope#

  • MVP: Interactive widget (iframe UI) + MCP tool-based. The widget provides core interactions such as entering participants / items, displaying results, and reshuffling.
  • Out of scope (initial): Login / payments, real-time multiplayer, complex animations, external data integration.
  • No authentication required: Since there is no external service integration, we start without OAuth / authentication flows.
  • Safety / Policy: No write operations to external systems. Tool hint annotations:
    • readOnlyHint: false — Not true because internal state is created / modified
    • destructiveHint: false — No irreversible external impact
    • openWorldHint: false — No public internet state changes

User Experience (UX) Scenarios#

Basic Flow (Interactive Widget)#

  1. The user types @Ladder Pick or something like “play a ladder game.”
  2. ChatGPT calls the create_game tool, and the Ladder Pick widget is displayed in an iframe.
  3. Within the widget:
    • Players list: Add / remove participant names (default 4)
    • Items list: Add / remove result items (prizes / roles)
    • Options: Reveal mode (All at once / One by one), Seed (auto / custom)
    • Click the “Pick!” button → Generate matching results
  4. Results area:
    • All at once: Display the full matching table immediately
    • One by one: Reveal one person at a time with the “Reveal Next” button
    • “Reshuffle” button: Reshuffle with a new seed
    • “Export” button: Copy results as text

Text Fallback#

  • Even without the widget, ChatGPT can display tool call results as text (table).
  • Example: “Ladder Pick, match A,B,C,D with 1st,2nd,3rd,4th” → Text table response

Error Cases#

  • Fewer than 2 participants → Error message: “At least 2 players are required.”
  • Item count ≠ participant count → Error message: “Number of items must match number of players. You have {n} players and {m} items.”
  • Items list empty → Error message: “Items list cannot be empty.”

Functional Requirements#

Input#

  • Participant list (Players): 2–20 people
  • Result items (Items): Must be exactly the same count as participants (error returned on mismatch)
  • Options
    • Reveal mode: all | one-by-one
    • Seed: Auto-generated or user-specified (for reproducibility)

Output#

  • Matching results: Player ↔ Item 1:1 mapping
  • Ladder visualization: Canvas-based visual ladder (vertical lines + horizontal rungs + color-coded path animations)

State / Storage#

  • Module-level Map<gameId, GameState> for in-process in-memory management
  • Unique ID issued on game creation; subsequent reshuffle / reveal_next lookups use that ID
  • No persistent storage (resets on server restart; this is sufficient for the initial version)

Technical Design#

Architecture (Based on Official Structure)#

ChatGPT Apps consist of two components:

Key AI Concepts (2): Fine-tuning / RAG / Function Calling / MCP

Key AI Concepts (2)#

In this chapter, we cover key concepts you’ll frequently encounter when turning a pre-trained LLM into a real product: fine-tuning, RAG, function calling, and MCP.


Fine-tuning#

Fine-tuning is the process of further training a pre-trained model to better fit a specific purpose. Thanks to open-source culture, training datasets and pre-trained models are often publicly available, and you can fine-tune them to improve performance or specialize in a particular domain.

Ladder Pick in ChatGPT

Ladder Pick in ChatGPT#

What Are ChatGPT Apps?#

ChatGPT Apps is a feature introduced by OpenAI in October 2025 that allows external service providers to integrate their services into ChatGPT. It is built on MCP (Model Context Protocol), which provides a standard for LLMs to invoke external tools. ChatGPT Apps takes this a step further by extending the standard so that interactive UI and logic from external services can be embedded directly within the ChatGPT chat interface. In other words, MCP established the standard for “LLMs using external capabilities,” and the scope of those capabilities has expanded beyond simple data retrieval and execution to include user-facing interactive UI. On top of this, OpenAI launched the App Directory, a marketplace where users can discover and try a wide variety of apps. For developers, this creates an opportunity to expose their apps to ChatGPT’s massive user base and potentially monetize them.

An Agent That Keeps Working After the Laptop Closes: Remote Development with Lightsail, Hermes, and Discord

An Agent That Keeps Working After the Laptop Closes: Remote Development with Lightsail, Hermes, and Discord#

2026-06-01

A remote Hermes development environment connected through Lightsail, Docker sandbox, and Discord

The Problem Started When I Closed the Laptop#

For a while, I used Hermes Agent installed directly on my local laptop. The experience was fast and intuitive: open a repository, edit files, run tests, and keep the agent close to the development environment.

© 2026 Ted Kim. All Rights Reserved. | Email Contact