All installed Skills are unavailable in regular Chat, while Work mode has Skill access

Environment

  • Surface: Web
  • Browsers tested: Firefox and Google Chrome, including Chrome Incognito mode
  • Devices tested: Multiple computers
  • Affected feature: ChatGPT Skills
  • Affected scope: All installed Skills on this account, more than 40 Skills in total
  • Example Skill used for testing: Prompt Steward (prompt-steward)

Bug

I’m seeing different Skill behavior with the same ChatGPT account depending on where I use it.

In Work mode, Skill access is available. For example, the Prompt Steward Skill can be accessed successfully: the system can read both the Skill instructions and an internal resource file.

In regular Chat, Skill access is not available. I tested this in several brand-new chats. Regular Chat does not provide a way to list or read Skills in the session, so it cannot find or access installed Skills.

This is not limited to Prompt Steward. The same issue affects all Skills installed on this account, including more than 40 installed Skills. Prompt Steward is only being used as a simple and repeatable test example.

I would expect Skills installed for the account to be available in regular Chat as well.

Reproduction

  1. Sign in to the same ChatGPT account and open Work mode.
  2. Check Skill access using Prompt Steward as the test example.
  3. Read the Prompt Steward Skill entry and internal resource:
    • skills://prompt-steward/skill.md
    • skills://prompt-steward/references/bundled-prompt-aliases.md
  4. Both files are read successfully in Work mode.
  5. Open a new regular Chat conversation using the same account.
  6. Run the same Skill access check.
  7. Regular Chat has no available Skill list or Skill reading capability, so it cannot access Prompt Steward or any of the other installed Skills.

I get the same result in Firefox, Chrome, and Chrome Incognito mode. I also restarted my computer and tested on another computer. The result is the same in every case.

Diagnostics

Work mode result:

  • Skill access is available.
  • The Prompt Steward Skill entry can be read successfully.
  • The specified internal resource can also be read successfully.

Regular Chat result:

  • No Skill list or Skill reading capability is available in the chat session.
  • As a result, none of the more than 40 Skills installed on this account can be accessed or used in regular Chat.
  • Prompt Steward is only the test example; the issue affects all installed Skills.

When it happened and how often:

  • First noticed: September 22, 2026
  • Frequency: Happens in every new regular Chat conversation I tested
  • Duration: This has been happening for several days

I have attached screenshots showing the difference between Work mode and regular Chat.

The prompt is as below:【ChatGPT Skill Runtime Universal Access Check】

This is a real Runtime verification of the current Chat, not a knowledge Q&A.

Test Objective
The following Skill serves as a test probe:

Display name: Prompt Steward

canonical slug: prompt-steward

Expected entry: skills://prompt-steward/skill.md

Verification resource: skills://prompt-steward/references/bundled-prompt-aliases.md

This test only determines:

whether the callable tool surface actually projected to you in this current Chat can truly read an installed Skill.

Do not judge whether the entire ChatGPT product supports Skills, and do not speculate about hidden tools.

  1. Find the currently truly callable Skill capabilities
    First inspect the tools that actually exist in the current session.

Do not assume the tool must be named:

skills.read

skills__read

call_skill

open_skill_resource

Interface names may change.

Search by functional semantics:

List currently available Skills;

Read Skill instructions;

Read Skill supporting resources.

If a generic tool executor currently exists and can call other registered tools, also check the Skill list/read capabilities actually callable within it.

But do not discuss unverifiable hidden/deferred tools.

Only inspect the execution surface that is actually callable right now.

  1. Prioritize resolving the real Skill URI
    If a Skill List / Directory capability exists, actually call it.

Look for:

Prompt Steward

prompt-steward

If found, use what the Runtime actually returns:

name;

slug;

URI

as authoritative.

Do not substitute ordinary Files, Library, Web, GitHub, Memory, or Plugin search for the Skill Directory.

If there is currently no List but there is a Skill Reader, you may directly try the known entry:

skills://prompt-steward/skill.md

  1. First-level real read
    You must actually read the target Skill Entry.

Target:

skills://prompt-steward/skill.md

or the equivalent URI actually returned by the Skill Directory this time.

Only a successful real read counts as successful first-level verification.

None of the following count:

The Skill is visible in the UI;

@Prompt Steward can be displayed;

knowing what Prompt Steward is;

it was used in past chats;

it once succeeded in Work;

the Skill shows as installed.

  1. Second-level Resource verification
    Only after the Skill Entry has been successfully really read, continue to read:

skills://prompt-steward/references/bundled-prompt-aliases.md

If the Skill Directory returned a different real Skill root, read this resource based on the real root.

After a successful read:

Confirm that internal Skill resources are accessible;

List the Preferred / Active aliases from the actual file content of this run.

Do not supplement based on past chats or memory.

  1. Diagnostic boundaries
    If the Skill Reader really exists but the target returns:

not found

permission denied

inaccessible

or an equivalent real error

Do not say the Runtime does not exist.

This is a current access failure of the target Skill.

If, in the actually callable surface of the current Chat:

there is no Skill List;

there is no Skill Reader;

and there is no generic executor capable of calling an equivalent Skill Reader;

then only state:

The current Chat has not projected a callable Skill Read capability.

Do not further infer:

Skill package corruption;

ZIP error;

YAML error;

metadata error;

slug error;

Skill not installed;

ChatGPT as a whole does not support Skills.

  1. Do not do these things first
    Before there is direct evidence from the Skill file, do not ask me to:

uninstall the Skill;

reinstall the Skill;

modify YAML;

modify metadata;

repackage the ZIP;

upload a knowledge base;

change the Skill name.

  1. Only four final outcomes are allowed
    A. SKILL_RUNTIME_ACCESSIBLE
    Satisfies:

The Skill Entry has been successfully really read;

the specified internal resource has been successfully really read.

This is a complete pass.

B. SKILL_ENTRY_ACCESSIBLE_RESOURCE_FAILED
Satisfies:

The Skill Entry has been successfully really read;

the specified internal resource has been actually attempted but failed.

Report the real error.

C. SKILL_READER_PRESENT_TARGET_FAILED
Satisfies:

The current Skill List/Reader truly exists and has actually been called;

but the target Skill returns not found, permission denied, inaccessible, or an equivalent real error.

D. SKILL_READ_SURFACE_ABSENT
Satisfies:

The actually callable tool surface of the current Chat has no Skill list/read;

and no generic executor capable of actually calling an equivalent Skill reader.

D only means:

The current Chat has not received a projection of Skill Read capability.

D does not mean the Skill package is corrupted.

  1. Final output format
    Return only:

Final Result
A / B / C / D + status name

Skill Runtime
Actually discovered Skill List interface:

Actually discovered Skill Read interface:

Whether a real call occurred:

Skill Entry
Actual URI:

Status:

Call result:

Internal Resource
Actual URI:

Status:

Call result:

Aliases
List only when the second-level resource was successfully read, based on the actual file content.

Conclusion Boundary
Only write facts that the current call can prove.

Do not provide installation instructions.

Do not continue modifying the Skill.

Now directly execute the real Runtime verification.

This is a strong A/B because you have already eliminated several of the usual red herrings:

  • same account;
  • same installed Skill;
  • Work can actually read the Skill entry and an internal resource;
  • regular Chat cannot expose a callable Skill list/read surface;
  • multiple browsers, Incognito and multiple computers give the same result.

I would not reinstall or repackage the Skill yet.

The important distinction is exactly the one your test prompt makes:

“Skill target exists but read fails” is not the same failure as “this Chat was never projected a callable Skill reader.”

If Work can read:

skills://prompt-steward/skill.md

and:

skills://prompt-steward/references/bundled-prompt-aliases.md

then you already have a same-account positive control showing the package itself is readable somewhere.

The cleanest next comparison, without changing anything, would be one fresh Work session and one fresh regular Chat created close together, recording:

  • selected model/mode;
  • the actual callable tool surface presented to each session;
  • whether a Skill list interface is present;
  • whether a Skill read interface is present;
  • the exact Work read result for the entry and resource;
  • the exact regular-Chat result: surface absent versus reader present but target failed.

That last split is important for engineering. A missing projected capability points toward surface/session configuration. A present reader returning not-found/permission-denied points toward target access.

I would avoid changing YAML, slug, ZIP or metadata until that boundary is established, because doing so destroys the best control you currently have: the same installed Skill already works in Work.

i have exact same problem

I’m sorry I didn’t have time to read all of your details closely, but if you’re saying that you’re able to invoke skills in WORK mode but not CHAT mode, I think the issue might be that you have to bundle your SKILL into a PLUGIN. Then, PLUGINS can be invoked using “@” in a normal chat session that is not work mode. I was able to get this to behave properly today.