Welcome to the Antigravity Awesome Skills tutorial!
If you are new here, you are about to turn your AI coding assistant (like Claude Code, Cursor, or Gemini) from a generic helper into a specialized expert.
Imagine you have a super-smart intern. They know everything about the worldβhistory, math, coding syntax, and poetry. But if you tell them, "Write a report following our company's specific security protocols," they will stare at you blankly.
Why? Because they don't know your specific rules.
Usually, you have to type a long prompt every time:
"Please check this code, but remember to use snake_case, and don't forget to check for SQL injection, and oh yeah, we use Postgres, not MySQL..."
This is tedious and error-prone.
An Agentic Skill is the solution. Think of it like a downloadable "knowledge module" (like in The Matrix) or a printer driver. You install it once, and suddenly your AI knows exactly how to perform a specific job.
In this project, a Skill is just a simple Markdown file named SKILL.md.
A Skill consists of two parts:
Let's look at a concrete example. We want to teach the AI how to be a "Grumpy Code Reviewer" that specifically looks for messy formatting.
We create a file at skills/grumpy-reviewer/SKILL.md.
At the very top of the file, we add YAML frontmatter. This helps the AI "search" its brain to find the right tool.
---
name: grumpy-reviewer
description: "Reviews code specifically for bad formatting and messy indentation. Use this when the user asks to clean up code."
---
name: The unique ID. You can invoke this by typing @grumpy-reviewer.description: This is crucial. The AI reads this to decide if it needs to use this skill.Below the dashes, we write standard Markdown instructions.
# Grumpy Code Reviewer Guidelines
## Overview
You are a strict code reviewer. You hate messy code.
## Rules
1. If indentation is wrong, complain about it.
2. If variables are named `x` or `y`, suggest descriptive names.
3. Always end your review with: "Now, go fix it!"
Now, when you ask your AI: "@grumpy-reviewer check this file," it loads these rules and behaves exactly as defined.
How does a text file control an advanced AI? It follows a process called Context Injection.
When you chat with the AI, it doesn't have all 800+ skills loaded at once (that would be too much text). Instead, it looks at the descriptions first.
@grumpy-reviewer matches the description.SKILL.md.SKILL.md to generate the answer.SKILL.md FileTo make a skill effective, we structure the internal Markdown carefully. You don't just dump text; you organize it so the AI can parse it easily.
Here is the implementation detail of a robust skill file.
This sets the context.
# Skill Name
## Overview
A brief explanation of what this skill does.
Keep it to 2-3 sentences.
This prevents the AI from using the skill in the wrong context.
## When to Use
- Use this when reviewing Pull Requests.
- Use this when refactoring legacy code.
- DO NOT use this for writing new features.
This is the "code" for the AI. Use numbered lists for sequential steps.
## Instructions
1. Analyze the file for syntax errors.
2. Check for security vulnerabilities (e.g., hardcoded passwords).
3. Generate a summary of changes.
Giving the AI examples is the most powerful way to ensure quality. It shows the AI exactly what the output should look like.
## Example Output
Input: `const x = 5;`
Output: "Variable 'x' is vague. Rename to 'userCount'."
Let's look at how the Antigravity project actually reads these files. While the full code is complex, the logic is simple.
The system treats SKILL.md as the "entry point."
.agent/
βββ skills/
βββ react-expert/
β βββ SKILL.md <-- The Brain
βββ security-audit/
βββ SKILL.md <-- The Brain
βββ checklists/ <-- Helper files
βββ owasp.md
When the tool starts, it runs a script similar to this simplified logic:
// Pseudo-code: How the AI discovers skills
function loadSkills() {
const skills = [];
// 1. Find all SKILL.md files
const files = glob("**/*.SKILL.md");
// 2. Extract the frontmatter (YAML)
files.forEach(file => {
const metadata = parseFrontmatter(file);
skills.push({
name: metadata.name, // e.g., "react-expert"
description: metadata.description // Used for matching
});
});
return skills;
}
The AI only sees the name and description initially. It only "reads" the rest of the file when you actually activate the skill. This keeps the AI fast and efficient.
In this chapter, we learned that the Agentic Skill (SKILL.md) is the atomic unit of this project.
name, description) to be discoverable.You have learned how to create a single skill. But what if you need to combine a "React Developer" skill with a "Security Auditor" skill?
In the next chapter, we will learn how to organize these skills into libraries and group them into Bundles for specific job roles.
π Next: Skill Catalog & Bundles
Generated by Code IQ