skill-creator
Skill Creation Standards
Create and manage Agent Skills for Antigravity/Gemini CLI.
About Agent Skills
Skills are modular packages that extend Antigravity with specialized expertise and workflows. They follow the open Agent Skills specification.
Skill Locations:
- Workspace skills:
.agent/skills/- project-specific, committed to version control - Global skills:
~/.gemini/skills/- personal skills across all workspaces
Skill Structure
skill-name/
├── SKILL.md # Required - instructions and metadata
├── scripts/ # Optional - executable scripts
├── references/ # Optional - documentation to load as needed
└── assets/ # Optional - templates, images, data files
SKILL.md Format
Frontmatter (required)
---
name: skill-name # Required: 1-64 chars, lowercase, hyphens only
description: What skill does # Required: 1-1024 chars, include trigger keywords
license: MIT # Optional: license identifier
compatibility: Requires git # Optional: 1-500 chars, environment requirements
metadata: # Optional: custom key-value pairs
author: example-org
version: "1.0"
allowed-tools: Bash(git:*) Read # Experimental: pre-approved tools
---
Name rules:
- Lowercase alphanumeric and hyphens only (
a-z,0-9,-) - No starting/ending hyphens, no consecutive hyphens (
--) - Must match parent directory name
Description tips:
- Include WHEN to use: specific scenarios, file types, or tasks
- Add keywords that help agents identify relevant tasks
Body Content
Markdown instructions for the agent. Keep under 5000 tokens for optimal context usage.
Include:
- Tool Usage Standards: Standard patterns for using Antigravity tools (
run_command,read_file) within this domain. - Step-by-step workflows (Procedures, not Lifecycle Workflows)
- Code examples
- Edge cases and troubleshooting
Skill Design Principles
Strict Separation of Concerns:
- Skill = Knowledge: Capabilities, Standards, Best Practices, Reference Data.
- Workflow = Process: Steps, Sequences, Lifecycles, Timelines.
[!WARNING] Do NOT embed Workflows in Skills.
- ❌ Bad: A
backend-developerskill defining a "Feature Implementation" lifecycle.- ✅ Good: A
backend-developerskill defining "API Design Standards" and asking the user to use a generic Workflow to execute it.
Progressive Disclosure
Skills use three-level loading to manage context efficiently:
- Metadata (~100 tokens):
name+descriptionloaded at startup - Instructions (<5000 tokens): Full SKILL.md body when skill activates
- Resources (as needed): scripts/, references/, assets/ loaded on demand
Creating a Skill
Step 1: Clarify Scope (Required)
Always ask the user to clarify the skill's scope before proceeding:
- What specific tasks should this skill handle?
- What tools, APIs, or frameworks does it involve?
- What are the expected inputs and outputs?
- Are there any existing workflows or patterns to follow?
Step 2: Research & Analysis
Use available tools to understand the full picture:
- Search tools: Use
search_web,read_url_contentto research official documentation - Codebase analysis: Use
grep_search,find_by_nameto understand existing patterns
Analyze step-by-step:
- What are the core capabilities needed?
- What standard Antigravity tools are most relevant? (e.g., read_file for docs, run_command for CLI)
- What are common use cases and edge cases?
- What scripts or references would be reusable?
Step 3: Initialize
python scripts/init_skill.py <skill-name> --path .agent/skills
Step 4: Edit SKILL.md
- Complete the frontmatter metadata with accurate description
- Write clear, actionable instructions based on research
- Add scripts/references/assets as identified in analysis
Step 5: Validate
python scripts/quick_validate.py .agent/skills/<skill-name>
Resource Directories
scripts/
Executable code (Python/Node/Bash) for automation tasks.
- Include error handling and helpful messages
- Document dependencies in requirements.txt
references/
Documentation loaded into context when needed.
- API references, schemas, detailed guides
- Keep files focused (<5000 tokens each)
assets/
Files used in output, not loaded into context.
- Templates, images, fonts, boilerplate code
Expert Questioning Framework
When a user requests to create or upgrade a skill, the agent MUST gather requirements through 5 phases.
[!IMPORTANT] Do NOT just provide a generic questionnaire. You must generate domain-specific questions based on:
- The skill's domain (frontend, backend, AI, etc.)
- The user's specific request
- Your expert knowledge in that domain
Workflow:
- Analyze the request - Identify the skill domain and user's goal
- Generate custom questionnaire - Create an Artifact for the user to fill out.
- MUST customize questions for the specific domain/task.
- Use the template as a base but rewrite questions to be specific.
- Notify User - Use
notify_userwithPathsToReviewpointing to the artifact. - Wait for Input - User will edit the artifact directly.
- Read & Proceed - Read the filled artifact and start implementation.
Example - Designer Skill Upgrade:
Instead of generic "What constraints?", ask specific questions like:
- "Should the skill focus on Web, Mobile, or both?"
- "Which design systems to reference? (Material, Ant, custom)"
- "Accessibility standards: WCAG 2.1 AA or AAA?"
- "Dark mode support required?"
Phase 1: Discovery (Understand WHY & WHO)
- What specific problem needs to be solved?
- Who will use this skill? (agent, human, or both)
- What triggers the need to create/upgrade this skill?
Phase 2: Context (Understand WHAT & WHERE)
- What is the specific domain? (frontend, backend, devops, AI, etc.)
- What tech stack or frameworks are involved?
- What standard tool patterns apply? (e.g., File system ops vs Command line ops)
- What constraints must be followed? (time, resources, team size)
Phase 3: Scope (Define Boundaries)
[!CAUTION] ⚠️ NEVER decide scope on your own - always ask user for confirmation
- What is IN scope? What is OUT of scope?
- Minor update or Major upgrade?
- Dependencies with other skills/tools?
Phase 4: Quality (Define Quality Standards)
- What level of expertise to embody? (junior, senior, expert 20+ years)
- Which best practices must be followed?
- What edge cases need to be handled?
Phase 5: Validation (Define Success)
- What are the acceptance criteria?
- How do we know the skill works correctly?
- What metrics measure improvement?
Key Principles:
- 🔍 Research before asking - use tools to understand context
- 🎯 Purpose-driven questions - each question leads to a specific decision
- 📝 Document answers - record for reference during implementation
Upgrading Existing Skills
Step 1: Clarify User Intent
Apply the Expert Questioning Framework above. Position yourself as an expert in the skill's domain to ask guiding questions.
Step 2: Analyze Current Skill
# Backup current skill
cp -r .agent/skills/<skill-name> .agent/skills/<skill-name>.backup
# View structure
ls -la .agent/skills/<skill-name>/
Analyze:
- Read SKILL.md: frontmatter, body, sections
- Check scripts/, references/, assets/
- Count tokens, sections, capabilities
Step 3: Gap Analysis
Compare current state vs new requirements:
| Requirement | Current State | Gap |
|---|---|---|
| ... | Yes/No | Need to add/Exists/Duplicate |
If duplicate: Notify user and ask if they want to enhance further
Step 4: Propose Changes
Present proposal and ask user for confirmation:
- Minor Update: Add notes, small fixes in SKILL.md
- Major Upgrade: Restructure, add scripts/references
- Restructure: Change architecture
Step 5: Implement & Report
After implementation, run:
python scripts/compare_skill.py .agent/skills/<skill-name>.backup .agent/skills/<skill-name>
Change Report Template
After upgrading a skill, report using this format:
## Skill Upgrade Report: [skill-name]
### Summary
- **Type**: Minor Update / Major Upgrade / Restructure
- **Date**: YYYY-MM-DD
### Changes Made
| File | Action | Description |
| -------------- | -------- | ---------------------- |
| SKILL.md | Modified | Added X, Y, Z sections |
| scripts/new.py | Added | Script for ... |
### Before vs After
| Metric | Before | After | Change |
| -------- | ------ | ----- | ------ |
| Tokens | X | Y | +Z% |
| Sections | X | Y | +Z |
### Validation
- [ ] `quick_validate.py` passed
- [ ] Structure verified
- [ ] User reviewed