#541·skills

ChatGPT Skills editor: a skill's displayed name is immutable after creation — neither the Name field nor openai.yaml display_name changes it

Author: kenny2077Created Sep 19, 2026Updated Sep 19, 2026

Note on venue: this is a report about the ChatGPT Skills editor on chatgpt.com, not about a skill in this catalog. There doesn't appear to be a public tracker for that surface (openai/plugins has issues disabled, and this repo is the closest active place skills work is discussed). Happy to be redirected if there's a better channel — please close with a pointer and I'll refile.

Updated 2026-09-19: further testing showed my original suspected cause (a stale display_name) was wrong, and screenshots have been added. The corrected finding is below — the problem is broader than I first reported.

Summary

A skill's displayed name is immutable after creation. Every name field inside the skill bundle can be edited and saved successfully, and every edit persists across reloads — but the name shown in the Skills list never changes from the one the skill was created with.

Surface: ChatGPT Plus — Skills (chatgpt.com/skills, editor at chatgpt.com/skills/editor/) Reproduced on: macOS web (Chrome) and the iOS ChatGPT app, same account — identical result Date observed: 2026-09-19

Steps to reproduce

  1. Upload a skill whose SKILL.md frontmatter is name: semester-matrix-interactive-html-block. ChatGPT ingests it and generates agents/openai.yaml and assets/icon.svg alongside it.
  2. Open the skill in the Skills editor, change the Name field to awesome-calendars-skill-uni-student, and press Save changes. Reload — the new value is still there, so the write persisted:
Skills editor Name field showing awesome-calendars-skill-uni-student
  1. Open agents/openai.yaml in the editor's file tree, set interface.display_name to the same new value, and save. Reload — that write persisted too:
agents/openai.yaml showing display_name: awesome-calendars-skill-uni-student
  1. Go to chatgpt.com/skills.

Expected: the skill is listed as awesome-calendars-skill-uni-student.

Actual: it is still listed as "semester matrix interactive html block" — the name it was created with — under both Installed and Created by me:

Skills list still showing semester matrix interactive html block under both Installed and Created by me

Not a caching problem

  • Hard refresh of the Skills page: no change.
  • Separate client (iOS ChatGPT app, same account): same stale name.
  • Repeated saves of both files: no change.
  • The stale name appears under Created by me, not only Installed — so this isn't an installed copy failing to track its source.
  • Other skills in the same list render their names normally, so the list itself is not broken.

What this implies

Both name fields in the bundle now hold awesome-calendars-skill-uni-student and survive reloads, yet the list renders semester matrix interactive html block — a third value stored somewhere neither field reaches.

The name rendered in the Skills list appears to be a separate server-side field on the skill record, captured once when the skill is created, which nothing in the editor updates. The bundle contents and the record's name are stored independently and never reconciled, so both name fields in the bundle are effectively decorative once the skill exists.

Impact

A skill cannot be renamed at all through the product. The editor presents an editable Name field and confirms every save, but the change is invisible everywhere it matters — a silent no-op with no in-product remedy short of deleting the skill and re-creating it, which loses its identity and any installs.

Suggested fix

Update the skill record's name when the bundle is saved — ideally re-deriving it from interface.display_name (falling back to SKILL.md name:) on every save, so the record can't drift from the bundle. Failing that, the Name field should not present itself as editable, and the save should not report success.