# How to Make Skills Compatible Across Multiple AI Assistants Using Antigravity Awesome Skills

> Learn how to make AI skills compatible across multiple assistants using a single SKILL.md file with Antigravity Awesome Skills. Standardize your AI assistant development now.

- Repository: [sickn33/antigravity-awesome-skills](https://github.com/sickn33/antigravity-awesome-skills)
- Tags: how-to-guide
- Published: 2026-03-18

---

**Antigravity Awesome Skills enables cross-compatibility by using a single [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) file with standardized YAML front-matter that every supported assistant reads identically, eliminating the need for assistant-specific code paths.**

The `sickn33/antigravity-awesome-skills` repository defines a portable skill format that works across Claude Code, Gemini CLI, Codex CLI, Kiro IDE, Cursor, OpenCode, and AdaL CLI without modification. By adhering to a strict schema and using a universal installer, you can write a skill once and deploy it everywhere.

## The SKILL.md Standard: A Universal Format

Cross-compatibility starts with the **standardized skill schema**. Every skill resides in `skills/<skill-name>/SKILL.md` and must contain required front-matter keys: `name`, `description`, `risk`, `source`, and `date_added`.

The parser in [`tools/lib/skill-utils.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/lib/skill-utils.js) extracts these values through the `parseFrontmatter` → `readSkill` function chain (lines 11-18). Because the parser normalizes tags and validates the YAML mapping once, the resulting skill object behaves identically regardless of which assistant consumes it.

## Three-Layer Architecture for Cross-Assistant Compatibility

The repository enforces compatibility through three distinct layers:

### Standardized Skill Schema

The file [`tools/lib/skill-utils.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/lib/skill-utils.js) validates that each [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) contains the required front-matter keys and rejects malformed YAML. This ensures that skills like [`skills/brainstorming/SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/skills/brainstorming/SKILL.md) follow the exact same structure whether used in Claude Code or Gemini CLI.

### Universal Installer

The CLI installer in [`tools/bin/install.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/bin/install.js) detects target assistants via flags (`--claude`, `--gemini`, `--codex`, `--open-code`, etc.) and copies the entire `skills/` tree into assistant-specific directories (lines 173-219). The installer creates:

- `~/.claude/skills/` for Claude Code
- `~/.gemini/skills/` for Gemini CLI
- `~/.codex/skills/` for Codex CLI
- `~/.agents/skills/` for OpenCode
- `~/.adal/skills/` for AdaL CLI

The installer also generates the Claude Code marketplace entry at [`.claude-plugin/marketplace.json`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/.claude-plugin/marketplace.json).

### Assistant-Agnostic Usage

According to [`docs/users/usage.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/docs/users/usage.md), users invoke skills using the generic pattern **@skill-name**. Because the skill name derives from the front-matter `name` field, the same invocation syntax works across all environments without per-assistant customization.

## Creating Your First Cross-Compatible Skill

To make skills compatible across multiple AI assistants, follow this workflow:

1. **Create the markdown file** at `skills/<my-skill>/SKILL.md` with the required front-matter.
2. **Write pure markdown content**—the security tests in [`tools/scripts/tests/docs_security_content.test.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/scripts/tests/docs_security_content.test.js) explicitly reject shell pipelines like `| bash` or `| iex` to ensure safe cross-platform execution.
3. **Run the installer** to deploy to all supported assistants.

Here is a minimal example that works everywhere:

```yaml
---
name: hello-world
description: "Print a friendly greeting. No external tools, pure markdown."
risk: low
source: community
date_added: "2026-03-01"
---

# Hello-World Skill

You are a helpful assistant. When invoked, simply respond with:

```

Hello, world! 🚀

```

Use this skill when you need a quick sanity-check or a friendly greeting.

```

## Installing Skills for Multiple Assistants

Run the universal installer to deploy skills to every supported assistant simultaneously:

```bash

# Installs the whole repository to all detected assistant directories

npx antigravity-awesome-skills

```

This single command executes the logic in [`tools/bin/install.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/bin/install.js), populating all assistant-specific paths with the same [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) files. The installer handles OS detection and directory creation automatically.

## Invoking Skills Across Different Assistants

Because the skills are assistant-agnostic, invocation differs only in the surface syntax, not the underlying behavior:

- **Claude Code**: Type `@hello-world`
- **Gemini CLI**: Type `Use @hello-world`
- **OpenCode**: Run `opencode run @hello-world`

All three commands cause the assistant to read the identical [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) from their respective skill directories and execute the same instructions.

## Summary

- **Single file format**: The [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) standard with YAML front-matter provides the foundation for cross-compatibility.
- **Universal validation**: [`tools/lib/skill-utils.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/lib/skill-utils.js) parses and normalizes skills once, ensuring consistent behavior.
- **Automated distribution**: [`tools/bin/install.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/bin/install.js) deploys to `.claude/skills/`, `.gemini/skills/`, and other directories without manual copying.
- **Generic invocation**: The `@skill-name` pattern works across Claude Code, Gemini CLI, Codex CLI, Cursor, OpenCode, and AdaL CLI.
- **Security enforcement**: Automated tests reject embedded shell commands, keeping skills safe across platforms.

## Frequently Asked Questions

### Do I need to write separate versions of a skill for each AI assistant?

No. Write a single [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) following the repository's front-matter schema. The [`tools/lib/skill-utils.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/lib/skill-utils.js) parser extracts the skill definition once, and the [`tools/bin/install.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/bin/install.js) installer handles assistant-specific placement. The same markdown file works in Claude Code, Gemini CLI, Codex CLI, and others without modification.

### What are the required front-matter keys for cross-compatibility?

Every [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) must include five keys in the YAML header: `name` (the skill identifier), `description` (usage context), `risk` (security level), `source` (provenance), and `date_added` (ISO 8601 date). The parser in [`tools/lib/skill-utils.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/lib/skill-utils.js) validates these keys before the installer distributes the file.

### Is the installer open source and extensible?

Yes. The installer source resides in [`tools/bin/install.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/bin/install.js) and supports adding new assistants by extending the target directory mappings (lines 173-219). The repository uses standard Node.js without proprietary dependencies, allowing community contributions for emerging AI assistants.

### How does the repository prevent security issues in cross-platform skills?

The test suite in [`tools/scripts/tests/docs_security_content.test.js`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/tools/scripts/tests/docs_security_content.test.js) scans all [`SKILL.md`](https://github.com/sickn33/antigravity-awesome-skills/blob/main/SKILL.md) files for dangerous patterns like `| bash` or `| iex` (PowerShell). Skills containing shell pipelines fail validation, ensuring that skills remain pure markdown instructions rather than executable scripts that could behave differently across operating systems.