The GPT Project Skill System installs and activates skill packages through two distinct steps: UNPACK and LOAD. This guide covers both command forms, exactly what each step does, how to load multiple skills, and which conditions cause a hard failure at each stage.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/xxyoudeadpunkxx/chatgpt-skill-system/llms.txt
Use this file to discover all available pages before exploring further.
Skill ZIP files present in your ChatGPT Project are completely inert until you issue an explicit UNPACK command. Presence does not imply install, validation, load, or activation of any kind.
Command forms
Both natural language and explicit syntax are understood by the system. Use whichever form fits your workflow. Natural languageUnpack the skill-adapter skill.
Load the skill-adapter skill.Explicit command syntax
The UNPACK step
SKILL <name> UNPACK physically installs a skill package from its ZIP file into the skill directory. The skill is available on disk after this step but is not yet semantically active.
What UNPACK does
Validate the skill slug
The
<name> you provide is validated as a skill slug. A valid slug contains only characters matching [a-z0-9_-], is not empty, and contains no spaces, dots, forward slashes, backslashes, or .. sequences.Verify the ZIP filename
The system confirms the skill ZIP filename is exactly
<name>.zip. If the filename does not match the slug you provided, the command fails immediately.Verify ZIP structure
The ZIP must have
MANIFEST.json at its root and must not contain a single wrapper directory surrounding the package contents. A flat-at-root ZIP is required — internal subdirectories are allowed, but the package itself must not be nested inside an outer folder.Verify manifest identity
The
skill_name field inside MANIFEST.json must equal <name>. The ZIP name, command slug, installed folder, and manifest skill_name must all match.Hard fail conditions for UNPACK
The command fails immediately if any of the following are true:| Condition | What triggers it |
|---|---|
| Slug violation | <name> contains spaces, dots, slashes, backslashes, or .. |
| ZIP filename mismatch | The ZIP file is not named <name>.zip |
skill_name mismatch | skill_name in MANIFEST.json does not equal <name> |
| Wrapper directory | The ZIP has a single wrapper directory surrounding all package contents |
| Install path mismatch | The extracted tree would not land at /mnt/data/GPT.SKILLS/SKILLS/<name>/ |
The LOAD step
SKILL <name> LOAD reads the installed skill and makes it semantically active in the current session. This is the step that gives the model access to the skill’s instructions.
What LOAD does
Confirm the skill is installed
The command checks that the skill has been unpacked into
/mnt/data/GPT.SKILLS/SKILLS/<name>/. LOAD does not auto-unpack — if the skill is not already installed, the command fails.Read the skill manifest
The loader reads
MANIFEST.json from the installed path to determine the skill’s entry point and load sequence.Resolve the load sequence
If
load_sequence is declared in the manifest, those files are used. If the manifest omits both primary_file and load_sequence, the loader falls back to SKILL.md at the package root. Providing only one of the two fields is invalid.Only files declared in
load_sequence are mounted as active skill instructions. Files declared in support_files, tool_files, and asset_files are physically available in /mnt after UNPACK, but they are not automatically treated as active session context.SKILL <name> LOAD on an already-active skill performs a full semantic reload — the skill files are re-read and the session context is refreshed.
Hard fail conditions for LOAD
| Condition | What triggers it |
|---|---|
| Skill not unpacked | The expected path /mnt/data/GPT.SKILLS/SKILLS/<name>/ does not exist |
Missing MANIFEST.json | The manifest file is absent or not valid JSON |
Missing primary_file | The file declared as primary_file is not present after unpack |
| Missing load sequence file | Any file listed in load_sequence is absent or not a readable UTF-8 text file |
| Required file is a directory | A path in load_sequence resolves to a directory rather than a file |
Loading multiple skills
Multiple skills can be active in the same session. Load each one individually after unpacking.Full example: installing skill-adapter
dist/skills/skill-adapter.zipis validated and extracted to/mnt/data/GPT.SKILLS/SKILLS/skill-adapter/MANIFEST.json,SKILL.md,references/, andscripts/are all physically present on disk- The skill is not yet active
- The manifest is read;
load_sequenceresolves to["SKILL.md"] SKILL.mdis mounted into the current session- The skill is semantically active — the model can use it
Session Lifecycle
Understand the full boot sequence: core unpack, skill load order, focus changes, and when to start a new chat.
Skill Adapter
Use the bundled skill-adapter skill to inspect and adapt external skill packages for this system.