DEV Community

Cryptea Sensei
Cryptea Sensei

Posted on Originally published at Medium

How to Create a Claude Skill You Can Reuse in ChatGPT and Gemini

One SKILL.md file, three apps: a portable template, the upload steps for each, and the limits that differ between them.

Disclosure: this article was drafted and edited with AI tools.

If you keep pasting the same long prompt into a chat window, a skill is the fix that Claude, ChatGPT and Gemini now all offer. All three build on the same open format: a folder with a file called SKILL.md inside it. In principle, that means you write the file once and upload it to each app.

In practice, each app has its own upload screen, plan rules and limits. This guide walks through building one skill that stays inside the strictest rules of all three, then shows where to upload it in each app.

How this guide was made: every step and limit below comes from the official Anthropic, OpenAI and Google documentation, checked on October 19, 2026. The steps have not been tried hands-on in the three apps. These features are changing quickly, so check the linked pages before you rely on a detail, and expect the screens to look slightly different.


What a skill is (and when you don't need one)

A skill is a saved set of instructions, plus optional files, that the AI loads only when your request matches it. All three vendors describe the same pattern. The app reads each skill's short name and description first. It opens the full instructions only when it decides the skill is relevant, and opens any extra files only when a step calls for them.

That's why skills suit repeated tasks you want done the same way every time: a report format, a review checklist, a multi-step routine.

You probably don't need a skill when:

  • It's a one-off task. Just describe it in the chat.
  • The instruction applies to every conversation. Claude's docs point you to your personal preferences or project instructions for that, because a skill only loads when a task matches.
  • The task keeps changing. Google's guidance says to skip skills when the steps change too often to keep up to date.
  • The app already does it well without help. Google lists this as a reason to skip one too.

The anatomy of a SKILL.md file

A skill is a folder. The only required file is SKILL.md:

extract-action-items/
└── SKILL.md
Enter fullscreen mode Exit fullscreen mode

Optional folders such as references/, assets/ and scripts/ can sit next to it. For a skill you want to carry between apps, start without them (more on why below).

SKILL.md has two parts:

  1. Frontmatter: a short block between two --- lines with two required fields, name and description.
  2. Body: plain Markdown instructions the AI follows once the skill loads.
---
name: your-skill-name
description: What the skill does. Use when [the situations it's for].
---

# Instructions go here
Enter fullscreen mode Exit fullscreen mode

Portable rules: write to the strictest limit

The three apps don't publish identical rules, so the safe approach is to satisfy all of them at once.

The name field

  • Use only lowercase letters, numbers and hyphens, up to 64 characters. The open Agent Skills specification and Claude's docs both require this, and Gemini's help page requires lowercase words separated by hyphens. The specification also says the name can't start or end with a hyphen or contain two hyphens in a row.
  • Make the folder name exactly match name. Claude's docs and the specification both require it.
  • Don't put "claude" or "anthropic" in the name. Claude's developer docs list these as reserved words.
  • Start with a verb. Google suggests action names like plan-meal-from-recipe rather than recipe-data.

The description field

  • Say what the skill does, then when to use it. Every vendor stresses this, because the description is what the app reads to decide whether to load the skill.
  • Write it in the third person ("Turns…", not "I can help you…"). Both Claude's best-practices guide and Google's help page say so.
  • Keep it under 200 characters. The open specification, Claude's developer docs and Gemini's help page all give a 1,024-character limit. One Claude Help Center article still says 200, next to other details that look older than the current specification. Staying under 200 is safe in every case.
  • Put the main use case and trigger words first. OpenAI's skills guide says Codex shortens descriptions when many skills are installed, and advises front-loading trigger words so a shortened description still matches.

The body

  • Keep it short and focused on one job. Claude's docs suggest under 500 lines, and Google calls skills "cheat sheets, not manuals."
  • Prefer plain instructions over scripts. Gemini doesn't support scripts that need the internet, and it accepts only plain-text files plus PDFs and images (no .docx or .xlsx). Claude's API runs skills with no network access, and ChatGPT scans uploaded skills before they become available. An instructions-only skill avoids all of these differences.

Build the example skill step by step

The example turns pasted meeting notes into a list of action items, each with an owner and a due date when the notes give one, plus any open questions. It's a good first skill: it's a job you repeat after every meeting, it benefits from a fixed sequence of steps, and it needs nothing but instructions.

Step 1: Write the task in one sentence

Claude's docs suggest starting with a single sentence describing the task and what a good result looks like. That sentence becomes your description:

Turns pasted meeting notes into a list of action items with owners, due dates if stated, and open questions. Use when processing notes from a meeting, call, or standup.

That's 168 characters: third person, what first, then "Use when…".

Step 2: List inputs, steps and output

OpenAI's guide suggests a skill should state the job, the required inputs, numbered steps, the output format and final checks. Google adds two habits worth copying: a "common mistakes" section, and telling the AI what to do when information is missing instead of guessing.

Step 3: Create the folder and file

Make a folder named extract-action-items. Inside it, create a plain-text file named SKILL.md, using a plain text editor rather than a word processor. Paste in the template below.

The complete SKILL.md (copy and adapt)

---
name: extract-action-items
description: Turns pasted meeting notes into a list of action items with owners, due dates if stated, and open questions. Use when processing notes from a meeting, call, or standup.
---

# Extract action items from meeting notes

## Inputs
- The meeting notes, pasted as text (required)
- The meeting date, if the notes don't include it

If no notes are provided, ask for them. Do not guess what was discussed.

## Workflow
Copy this checklist and work through it in order:
- [ ] 1. Read the notes
- [ ] 2. Pull out the action items
- [ ] 3. Collect open questions
- [ ] 4. Check the list against the notes

### 1. Read the notes (do not list anything yet)
Note briefly:
- What the meeting was about, in one sentence
- The people named in the notes
- Any decisions that were made

### 2. Pull out the action items
For each task someone agreed to do, or was asked to do:
- Write the task as a short phrase that starts with a verb.
- Owner: the person named for it. If nobody is named, write "Unassigned".
- Due date: only if the notes state one, in the notes' own wording. Otherwise write "Not stated".
- Do not invent tasks, owners, or dates that are not in the notes.

### 3. Collect open questions
List questions that were raised but not answered, and topics still waiting for a decision.
Also list any action item whose owner or meaning is unclear.

### 4. Check the list against the notes
Reread the notes from the top.
Add any task you missed, and remove any item the notes do not support.

## Output format
1. **Summary**: one sentence on what the meeting covered
2. **Action items**: a table with the columns Task, Owner, Due date
3. **Open questions**: a bulleted list. If there are none, say so.

## Common mistakes to avoid
- Turning a general discussion point into a task nobody agreed to
- Guessing the owner from whoever spoke most
- Converting a vague timeframe ("soon", "after the launch") into an exact date
- Missing tasks mentioned in passing near the end of the notes
Enter fullscreen mode Exit fullscreen mode

Change the inputs, steps and mistakes to fit your own task. Keep the structure: description, inputs, a numbered checklist, an output format and a mistakes list.

Step 4: Package it

  • Claude expects a ZIP file, and the ZIP must contain the folder itself, not just the files inside it. On macOS or Linux, Claude's docs give this command, run from the folder that contains your skill folder:
  zip -r extract-action-items.zip extract-action-items/
Enter fullscreen mode Exit fullscreen mode

If you use another tool, compress the folder rather than the file inside it.

  • Gemini accepts a SKILL.md file on its own, a folder, or a ZIP.
  • ChatGPT's help page says "Upload from your computer" but doesn't state the file type for the app.

Upload it: Claude, ChatGPT and Gemini

Claude (claude.ai and the desktop app)

  1. Turn on code execution. Claude's help page says skills need it. On individual plans it's under Settings → Capabilities → Code execution and file creation.
  2. Go to Customize → Skills.
  3. Click +, then Create skill, then Upload a skill, and choose your ZIP.
  4. Make sure the skill is toggled on.

Claude's Help Center lists skills on the Free, Pro, Max, Team and Enterprise plans. Note that one older developer page still says Pro and above, so check your own account. On Team and Enterprise, an organization owner controls whether skills and uploads are allowed.

ChatGPT

  1. In the sidebar, select Plugins.
  2. Open the Skills tab in the Plugin Directory.
  3. Select Create, then Upload from your computer.
  4. Wait for the scan. OpenAI says uploaded skills are scanned first. Most become available right away, some are marked Needs Review, and risky ones are Blocked.

Plan access is unclear right now. OpenAI's Skills help article says skills are for "eligible ChatGPT Business, Enterprise, Healthcare, and Edu users." Its pricing page, checked the same day, lists Skills on Free, Go, Plus and Pro. OpenAI's developer guide also says standalone skills are in the ChatGPT desktop app. The reliable check is whether a Skills tab appears under Plugins in your own account. Upload options may also differ by plan and by app, so don't assume a personal plan can upload on the web.

Gemini app

  1. Go to gemini.google.com, or open the Gemini app on a Mac.
  2. Click Customize in the sidebar (under More if you don't see it), then Skills at the top.
  3. Click Upload, select your SKILL.md, folder or ZIP, and click Open.
  4. Review the skill, then click Create.

Google's help page lists these requirements: you must be 18 or over, signed in, with Keep Activity on. (Google's October 13 launch post says Gemini app skills will be open to all ages, so the age rule may change.) Skills are only in the Gemini mobile app, the Mac app and the web app. A Google AI subscription isn't required. Google says skills in the Gemini app began a gradual rollout on October 13, 2026, with completion expected by mid-November. If you don't see Skills yet, your account may simply not have it.


Compatibility at a glance (from the docs, October 19, 2026)

Claude (claude.ai) ChatGPT Gemini app
Where Customize → Skills Plugins → Skills tab Customize → Skills
Upload format ZIP with the skill folder at the top level "Upload from your computer" (type not stated) SKILL.md, folder, or ZIP; 100 MB total
name Lowercase, numbers, hyphens; ≤64; matches folder; no "claude"/"anthropic" Follows the open standard Lowercase words with hyphens
description 1,024 (docs) vs. 200 (Help Center) Front-load; may be shortened 1,024
Scripts / files Allowed; needs code execution Allowed; scanned on upload No internet scripts; plain text, PDF and images (no .docx/.xlsx)
Call it by name Ask explicitly ("Use my … skill") Type @ Type / or @
Plans Free, Pro, Max, Team, Enterprise (Help Center) Conflicting (see above) No Google AI plan needed; rolling out to mid-Nov
Updating Re-upload the ZIP Not covered in the help article Re-upload the whole skill to update files

What may not carry over between apps

The file format is shared, but the apps around it aren't. Watch for these:

  • Extra frontmatter fields. Each vendor documents its own optional extras. Claude's Help Center mentions a dependencies field, and ChatGPT reads an optional agents/openai.yaml file. Whether the other apps ignore or reject these isn't documented, so leave them out of a portable skill.
  • App-specific paths. Claude's docs use a ${CLAUDE_SKILL_DIR} placeholder for script paths. Other apps don't document it.
  • ZIP layout. Claude requires the folder at the top of the ZIP. Gemini asks for a SKILL.md "in its main folder." If one app rejects your ZIP, try uploading the folder or the SKILL.md file directly where that's allowed.
  • Binary and hidden files. Gemini rejects .docx and .xlsx, and Google warns that hidden files like .DS_Store can make an upload fail.
  • Sharing. Each app handles sharing differently: Claude only on Team and Enterprise, ChatGPT within a workspace, and Gemini's sharing announced only for "the coming weeks."

Checklist before you upload

  • [ ] Folder name and name are identical, lowercase, hyphens only, ≤64 characters
  • [ ] name doesn't contain "claude" or "anthropic"
  • [ ] description says what and when, in the third person, under 200 characters
  • [ ] Body covers inputs, numbered steps, output format and common mistakes
  • [ ] The skill says what to do when information is missing
  • [ ] No scripts, or none that need the internet
  • [ ] Only plain-text files such as .md or .txt; no Office files and no hidden files like .DS_Store
  • [ ] No API keys, passwords or personal data anywhere in the folder
  • [ ] For Claude: the ZIP contains the folder, not loose files
  • [ ] After uploading: the skill is switched on, and you've tried a few prompts that should trigger it

Common mistakes and troubleshooting

The skill never triggers. All three vendors point to the description first. Make it more specific and include the words you'd actually type. Claude's help page also suggests checking that the skill is toggled on, and asking for it by name. In ChatGPT and Gemini, you can call it directly with @ (or / in Gemini).

The upload is rejected. Claude lists the usual causes: the ZIP is too large, the folder name doesn't match the skill name, SKILL.md is missing, or the name or description has invalid characters. For Gemini, check for binary or hidden files and the 100 MB limit.

There's no Skills section. In Claude, turn on code execution. In ChatGPT, your plan or workspace may not include skills yet. In Gemini, the rollout may not have reached your account, or Keep Activity may be off.

Using skills from strangers. Anthropic's docs warn that a malicious skill can direct the AI to do things you didn't intend. Only install skills from sources you trust, and read every file first. OpenAI's scan doesn't replace your own review, and it says so.


Limitations of this guide

  • Nothing here was tried hands-on. It's a careful reading of each vendor's documentation as of October 19, 2026.
  • Plan access, menu names and limits are changing quickly. ChatGPT's plan eligibility and Claude's description limit currently conflict across official pages.
  • A skill makes the instructions consistent, not the results. The same file can behave differently in each app and with each model. Claude's own best-practices guide tells you to test with every model you plan to use.

FAQ

Is a skill the same as a Custom GPT or a Project?
No. OpenAI describes skills as reusable workflows for specific tasks, GPTs as custom versions of ChatGPT, and Projects as shared context, files and conversations.

Do I need to code?
No. A skill can be instructions only. All three apps can also help you draft one: Claude and ChatGPT have a built-in skill-creator, and Gemini can create a skill from a chat.

Will a skill uploaded to Claude.ai show up in Claude's API too?
No. Anthropic's docs say custom skills don't sync between claude.ai and the API, so upload them separately.

Do I have to pay?
For Gemini, Google says no subscription is needed. For Claude, the Help Center includes the Free plan, with code execution turned on. For ChatGPT, OpenAI's pages disagree, so check your account.


Wrapping up

The shared SKILL.md format makes it realistic to keep one source file for all three apps. You get there by writing to the strictest rules: a lowercase hyphenated name that matches the folder, a third-person description under 200 characters, and plain instructions with no scripts. Then upload it the way each app expects. Keep the original folder somewhere safe, because Gemini needs a full re-upload to update files, and Claude needs a new ZIP.

You could build other skills the same way, such as one that adapts Japanese posts for English readers (the article "How to Use AI to Translate Japanese Content for English Readers Without Sounding Like a Robot" shows the steps in prompt form).

Sources

All checked on October 19, 2026.

Top comments (0)