What is an Antigravity Skill Architect?
An operator who builds the system that builds the software. Instead of writing code, you author reusable skills that encode your constraints, wire MCP servers that give agents access to external systems, and orchestrate subagents that execute in parallel. The real skill shifts from typing syntax to directing the system logic. This class teaches you how to build that system, using the DDS Academy production pipeline as the first-party worked example.
Module 01
The DDS Production Pipeline
I will teach the general concepts in Modules 02 through 07. But I lead with how I actually do it, because the specific pipeline is more useful than the theory.
How a class gets built
- Brief. I write a task brief: the class title, handle, metadata, topic coverage, voice gate reference, SEO Magnet V3 compliance requirements, cross-link verification list, and a list of every gate the output must pass. The brief is typically 200-400 lines. It is the acceptance criteria for the entire build.
- Research gate. The agent web-researches current facts. Every statistic must be attributable to a named source. If a fact cannot be confirmed, it is marked “Not verified.” No fact from memory alone. This gate exists because agents hallucinate, and hallucinated stats in a published class are permanent.
- Build. The agent constructs the full section: 10 JSON-LD schemas, meta tags, CSS design system, HTML body with modules, FAQ accordion matching FAQPage schema count exactly, JS IIFE. Output is typically 900-1100 lines of Liquid.
- Self-audit. Before deploy, a Python script validates: JSON-LD parses, TOC anchors resolve, FAQ count matches schema count, file ends with endschema, no banned terms. If any check fails, the agent fixes and re-runs.
- Staging deploy. The section and template go to a staging Shopify theme. Render-verify at three viewports with cache-busted URLs.
- MAIN promotion. GET each file from staging, PUT to MAIN, re-GET from MAIN, assert byte-length parity. If lengths diverge, halt.
- Page creation + metafields. Create the Shopify page via Admin GraphQL, publish, set SEO metafields (title_tag and description_tag). Query and record createdAt.
- Image hand-off. OG banner generation is a separate step handled by a different agent. The section ships with a placeholder; the URL is wired in only when the banner passes its own quality gate.
Why the hand-off boundary
Image generation is unreliable. Text in generated images garbles. Dimensions come out wrong. The DDS pipeline splits image generation into a separate step with its own quality gate (dimension check, vision check for legible text, retry up to 3 times, manual review list for persistent failures). Mixing image generation into the main build makes the entire pipeline fragile. Separate the concerns.
This pipeline has built Classes 71 through 75 of this Academy. It works. The rest of this class teaches you the components you need to build your own version.
Module 03
Trigger Matching
Trigger matching is where most custom skills fail. The description is either too broad (fires on every task) or too narrow (never fires when you need it).
Good vs. bad descriptions
| Quality | Description | Problem |
|---|---|---|
| Bad (too broad) | “Use for web development tasks.” | Triggers on every web task. False positives everywhere. |
| Bad (too narrow) | “Use only for editing dva-evals-testing-ai-output-masterclass.liquid.” | Only triggers for one specific file. Useless for every other Academy class. |
| Good | “Use for ALL work on the DDS Shopify store. Triggers on .liquid files, Shopify sections, JSON templates, or the ddsboston store.” | Scoped to a specific store and file types. Triggers correctly for all DDS Shopify work. |
Testing your triggers
- Install the skill in the correct directory.
- Open a new Antigravity session (the agent scans skills at startup, not mid-session).
- Issue a task that should activate the skill. Verify the agent follows your instructions.
- Issue a task that should not activate it. Verify it stays dormant.
- If the skill fires incorrectly, narrow the description. If it does not fire, broaden the keywords.
The mid-session trap
Antigravity scans skill frontmatter at session start. If you add or modify a skill mid-conversation, the agent will not see the change until you start a new session. This has cost time. Always test skill changes in a fresh session.
Module 04
Subagent Orchestration
When to use subagents
- Context isolation. A subagent's context window does not pollute the parent. If a research task generates 50KB of raw HTML, that stays in the subagent's context, and only the extracted results come back.
- Parallel execution. You can run a frontend build agent, a backend build agent, and a QA validator agent simultaneously. Each works in its assigned scope.
- Tool specialization. A browser subagent navigates web pages. A filesystem subagent reads and writes files. Each subagent sees only the tools relevant to its task.
The DDS example: image hand-off
In the DDS pipeline, OG banner generation is handled by a separate agent (or a separate step driven by a different model). The build agent produces the section with a placeholder URL. The image agent generates the banner, uploads it, and returns the CDN URL. The build agent then wires the URL and deploys. This is subagent orchestration in practice: two agents with different capabilities, coordinated by the operator.
Per-agent model selection
Antigravity is optimized for Gemini models (Gemini 3.5 Flash is the default for parallel workflows). But the architecture supports per-agent model selection through the agent configuration. At DDS, the build agent runs on whichever model handles long-context structured output for that specific task. Model selection is a per-task decision, not a global setting.
Module 05
MCP Server Wiring
Configuration locations
- Global:
~/.gemini/config/mcp_config.json— shared across all workspaces. - Workspace:
.agents/mcp_config.json— project-specific servers only.
{
"mcpServers": {
"shopify": {
"command": "npx",
"args": ["-y", "@anthropic/shopify-mcp-server"],
"env": {
"SHOPIFY_STORE_URL": "https://your-store.myshopify.com",
"SHOPIFY_ACCESS_TOKEN": "${SHOPIFY_TOKEN}"
}
},
"filesystem": {
"command": "npx",
"args": ["-y", "@anthropic/filesystem-mcp-server", "/path/to/project"],
"env": {}
}
}
}
What MCP servers expose
- Tools — functions the agent can call. The Shopify MCP server exposes
get-products,create-product,update-order. The filesystem server exposesread_file,write_file,search_files. - Resources — read-only data the agent can query. Schema definitions, documentation, catalog data.
- Prompts — pre-built prompt templates the server provides.
Security: scope your tokens
Never hardcode API tokens in mcp_config.json. Use environment variables (${SHOPIFY_TOKEN}) and store the actual values in your shell profile or a secrets manager. In 2025, over 24,000 secrets were leaked from MCP configuration files in their first year (GitGuardian State of Secrets Sprawl 2025). If your MCP config contains a real token and you commit it, the token is exposed.
Module 06
Brief Design: Writing What the Agent Executes
The DDS task brief for a class build is typically 200-400 lines. That is not excessive. That is precise. Every line eliminates one possible misinterpretation.
Anatomy of a DDS task brief
- Scope + assumptions. What this task IS and IS NOT. What the agent should NOT touch. What it can assume exists.
- Metadata. Class number, handle, section filename, template filename, CSS prefix, section_id pattern.
- Research gate. What to research, what sources to use, what to mark as “Not verified.”
- Voice gate. Load
dds_voice_core.md. Self-check: “would Robert McCullock actually write this?” - Build spec. SEO Magnet V3 requirements in order: preloader kill, Liquid vars, 10 JSON-LD schemas, meta tags, CSS, body structure, speakable IDs, answer capsules, module count, code block rules, cross-link verification, FAQ count gate.
- OG hand-off. Build with placeholder. Pause. Receive URL. Replace. Deploy.
- Deploy spec. Staging theme ID. Render-verify. MAIN promote with length parity. Page creation. Metafields. Re-GET verification.
- Output spec. What to report back: handle, live URL, re-GET values, classes_data row, sources list.
The constraint is the feature
Operators who write loose briefs (“build me a page about X”) get output that technically meets the request but misses the constraints that matter. Every constraint you add to the brief is one fewer correction you make after the build. The brief is not overhead. It is the product specification.
Module 07
Operator Discipline
Five rules of operator discipline
- Verify against source of truth, never the agent's word. The agent says the file deployed? Pull it from the live system and check. The agent says JSON-LD parses? Run a validator. The agent says the FAQ count matches? Count them yourself. Every claim the agent makes is an assertion that needs evidence.
- Reversible deploys only. Before every deployment, snapshot the current state. If the deployment breaks something, restore from the snapshot in a single command. If you cannot roll back, you cannot ship. The DDS pipeline saves every overwritten file to a snapshot directory before writing.
- Hand-off boundaries are non-negotiable. If an agent is unreliable at a subtask (image generation, for example), split that subtask into a separate step with its own quality gate. Do not let a flaky subtask take down the entire pipeline.
- One source of truth. The live MAIN theme is the source of truth for DDS. Not the staging theme. Not the agent's context. Not the local filesystem copy from three hours ago. When in doubt, pull from MAIN.
- Gate stacks are mandatory, not optional. Every output passes through truth/sourcing, voice, schema, and deploy gates. If a gate is skipped “just this once,” the output ships with unverified risk. Gates exist because human operators forget things. Let the gates remember for you.
The paradox of agent productivity
Agents produce output 10x faster than manual coding. But an agent that produces incorrect output 10x faster just creates 10x more cleanup work. Operator discipline is how you keep the speed without the rework. The DORA deployment rework rate metric captures exactly this: high throughput with high rework is churn, not value.
Module 08
Where This Sits in the Antigravity Lane
Antigravity Onramp
Your first session. Environment setup, first agent conversation, first file edit.
Antigravity 2
Building real features. Multi-file edits, terminal commands, iterating on output.
Antigravity IDE 2.0
The IDE as a platform. Extensions, customization, workspace configuration.
Multi-Model Orchestration
Running multiple models. Picking the right model for each task.
Skill Architect (this class)
Building the system: custom skills, subagents, MCP, production pipelines.
The progression: onramp teaches you to talk to the agent. First light teaches you to build with it. Platform teaches you to configure it. Multi-model teaches you to choose the right engine. Skill Architect teaches you to build the system itself — the skills, the orchestration, the pipeline that produces the output. This is where the operator stops being a user and becomes the architect.
Module 09
Paste-Ready Templates & Prompts
--- name: my-skill-name description: | Use this skill when [specific task or intent]. Triggers on [specific keywords, file types, or patterns]. --- # My Skill Name ## When to Use - [Scenario 1] - [Scenario 2] ## Constraints - [Hard rule 1] - [Hard rule 2] ## Workflow 1. [Step 1] 2. [Step 2] 3. [Step 3] ## Output Format - [What the output should look like]
{
"mcpServers": {
"my-server": {
"command": "npx",
"args": ["-y", "@org/my-mcp-server"],
"env": {
"API_TOKEN": "${MY_API_TOKEN}"
}
}
}
}
I need three parallel agents for this project: 1. Agent A (frontend): Build the UI components in /src/components/. Use React 19, TypeScript strict mode. 2. Agent B (backend): Build the API routes in /src/api/. Use Express with input validation on every endpoint. 3. Agent C (QA): After A and B complete, run the test suite and report failures with file, line number, and fix suggestion. Each agent works only in its assigned directory. No agent modifies files outside its scope.
Write a task brief for building [describe the feature]. The brief must include: - Scope: what this task IS and IS NOT. - Metadata: filenames, directory structure, naming conventions. - Constraints: hard rules the output must follow. - Gates: validation checks that must pass before the output is accepted. - Output spec: what to report when done. No ambiguity. Every constraint eliminates one possible misinterpretation.
Audit all installed skills in this workspace: 1. List every skill by name, location (global vs workspace), and description length. 2. Flag skills with descriptions over 200 characters (trigger bloat). 3. Flag skills with descriptions under 20 characters (under-specified). 4. Identify potential trigger conflicts: two skills whose descriptions overlap and could both fire on the same task. 5. For each conflict, recommend which skill should own the trigger and how to narrow the other.
What You Should Remember
- Build a skill when a workflow runs more than twice. If you are repeating instructions, that is a skill.
- The description field controls trigger matching. Under 200 characters, written from the agent's perspective.
- Subagents isolate context. Use them for parallel execution, tool specialization, and keeping the main agent lean.
- MCP servers connect agents to external systems. Configure in mcp_config.json. Never hardcode tokens.
- A task brief is the acceptance criteria. Every constraint eliminates one misinterpretation.
- Verify against the source of truth, never the agent's self-report. Re-GET from the live system. Count the FAQs yourself.
- Reversible deploys only. If you cannot roll back, you cannot ship.
- Hand-off boundaries protect the pipeline. Separate unreliable subtasks into separate steps with their own gates.
You Are the Architect Now
The Antigravity lane started with onramp: open the IDE, talk to the agent, edit a file. It ends here. You are no longer using the tool. You are building the system the tool runs on. Skills encode your constraints so the agent follows them without being told twice. Subagents split work so context stays clean. MCP servers connect agents to the real world. The brief is how you direct the build. And operator discipline — verify against the source of truth, never trust the report — is what separates production pipelines from demo scripts. I designed the constraints, the agents did the rest. Now you build yours.
Frequently Asked Questions
FAQ
A skill is a reusable package of instructions that extends what an Antigravity agent can do. It lives in a folder containing a SKILL.md file with YAML frontmatter (name and description) and markdown instructions. The agent reads the frontmatter at startup and only loads the full instructions when a task matches the skill's description. This is called progressive disclosure. Skills follow the open agentskills.io standard and are portable across compatible AI coding agents.
Build a skill when the same workflow runs more than twice, involves specific constraints the agent must follow every time (file naming, API patterns, validation gates), or requires reference material the agent needs to read. If you are repeating the same 15 lines of instructions across prompts, that is a skill. If it is a one-time task with no recurring pattern, prompt it directly.
Two required fields: name (must match the folder name, lowercase with hyphens) and description. The description is the most critical field because it controls trigger matching. Write it from the agent's perspective: 'Use this skill when...' followed by the specific tasks, intents, or keywords that should activate it. Keep it under 200 characters. An over-broad description causes false triggers; an under-specified one means the agent never finds the skill.
At startup, the agent loads only the name and description from every installed skill's frontmatter. When you issue a task, the agent compares your request against all loaded descriptions. If a match is found, the agent reads the full SKILL.md body and any referenced files (scripts, references, resources directories). The agent then follows those instructions for the current task. This progressive disclosure approach prevents context bloat from loading every skill into memory at once.
A subagent is a specialized agent spawned by a main agent to handle an isolated subtask. Subagents inherit tool configurations and security permissions from the main agent but run in a separate context window. This prevents context pollution: the main agent stays focused on orchestration while subagents handle specific jobs like browser research, code generation, or test execution. Subagents can run in parallel.
Antigravity 2.0 functions as a standalone Agent Manager. You launch multiple agents in parallel across different workspaces. Define specific roles for each agent (frontend-agent, backend-agent, qa-validator) and assign them to specific directories or scopes. The system handles asynchronous task management so long-running processes do not block the main agent's orchestration. This is how DDS runs its multi-class Academy build pipeline.
MCP (Model Context Protocol) is a standard protocol for connecting AI agents to external data sources, databases, and tools. In Antigravity, you configure MCP servers in mcp_config.json (globally at ~/.gemini/config/mcp_config.json or per-workspace at .agents/mcp_config.json). Each server exposes tools (functions the agent can call), resources (read-only data), and prompts. This eliminates custom glue code for every integration.
The DDS build pipeline is how Design Delight Studio builds Academy masterclasses using Antigravity agents. The operator writes a task brief carrying a gate stack (truth/sourcing, voice, schema validation), drives an agent to research and build a Shopify section, deploys against a single source of truth (the live MAIN theme), verifies against MAIN not the agent's self-report, and hands off image generation to a separate step. It is the case study because it is first-party, verifiable, and production-tested.
A gate stack is a set of mandatory checks embedded in the task brief that the agent must satisfy before output is accepted. The DDS gate stack includes: truth/sourcing gate (every fact attributed, no invention), voice gate (text passes the dds_voice_core.md check), schema gate (all JSON-LD parses, FAQ count matches accordion, TOC anchors resolve), and deploy gate (staging length equals MAIN length, rollback snapshot exists). If any gate fails, the output is rejected.
It means you never trust the agent's report that something is done. You verify by querying the actual system. After deploying a Shopify section, you re-GET it from the MAIN theme via the Admin API and confirm the byte length matches. After setting SEO metafields, you query them back from the API and confirm the values. The agent says it succeeded? Verify. The agent says the file is there? Pull it and check. This discipline catches silent failures, partial writes, and hallucinated success messages.
In Antigravity, you configure the model parameter in the agent's definition or system prompt. The platform is optimized for Gemini models (Gemini 3.5 Flash is the default for parallel workflows), but the architecture supports per-agent model selection through the SDK. At DDS, the build agent runs on whichever model handles long-context structured output best for that specific task. Model selection is a per-task decision, not a global setting.
Install skills globally at ~/.gemini/config/skills/ when they apply to every project (deployment workflows, code review standards, brand voice rules). Install them at the workspace level in .agents/skills/ when they are project-specific (a particular API's patterns, a specific framework's conventions). Global skills load for every workspace. Workspace skills load only for that project.
agentskills.io is an open standard for defining agent skills in a portable, cross-platform format. Originally introduced by Anthropic, it specifies the SKILL.md structure (YAML frontmatter plus markdown body), the folder layout (scripts, references, assets directories), and the progressive disclosure loading model. Skills authored to this standard work across Antigravity, Claude Code, Gemini CLI, and other compatible AI coding agents.
Antigravity creates an isolated execution environment limited to the project directory. Agents cannot access or modify system files outside this scope. Terminal Sandbox mode restricts command execution with configurable allow and deny lists. Strict Mode forces explicit human approval before any command runs. The platform records file modifications and command executions in an audit trail. For MCP servers, many developers use containerized (Docker) servers to provide additional isolation.
Nothing. This masterclass is 100 percent free. No signup, no email, no paywall, no certificate requirement. It is part of the DDS Vibe Academy, a free AI coding curriculum built by Robert McCullock at Design Delight Studio.
