DVA Vibe Academy · Class #75 · Free · No Signup
SKILL MCP

Antigravity Skill Architect

You are not here to write code. You are here to build the system that writes the code. Custom skills. Subagent orchestration. MCP wiring. The DDS production pipeline as the worked example. This is the Mastery capstone for the Antigravity lane.

Duration: ~90 min Level: Advanced Stage: Mastery Lane: Antigravity Cost: $0 Signup: None
  • Mastery capstone — the final class in the Antigravity lane
  • DDS pipeline as case study — how I build Academy classes with AI agents, right now, in production
  • Paste-ready skill templates — SKILL.md, MCP config, and subagent prompts you can use today
  • agentskills.io open standard — skills portable across Antigravity, Claude Code, Gemini CLI
Quick Answer

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

Answer Capsule The DDS build pipeline is how this Academy gets built. An operator writes a task brief carrying a full gate stack. An Antigravity agent researches, builds a 900+ line Shopify section, and deploys it. The operator verifies against the live MAIN theme, not the agent's self-report. This is the case study for the entire class.

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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Staging deploy. The section and template go to a staging Shopify theme. Render-verify at three viewports with cache-busted URLs.
  6. MAIN promotion. GET each file from staging, PUT to MAIN, re-GET from MAIN, assert byte-length parity. If lengths diverge, halt.
  7. Page creation + metafields. Create the Shopify page via Admin GraphQL, publish, set SEO metafields (title_tag and description_tag). Query and record createdAt.
  8. 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 02

Authoring a Custom Skill

Answer Capsule A skill is a SKILL.md file inside a named directory. YAML frontmatter defines the name and description (the trigger). Markdown body defines the instructions. The agent loads only the frontmatter at startup and reads the full body only when a task matches the description. This is progressive disclosure, and it keeps the agent's context lean. Skills follow the agentskills.io open standard, portable across Antigravity, Claude Code, and Gemini CLI.

Build a skill when the same workflow runs more than twice, involves constraints the agent must follow every time, 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.

Directory structure

File tree
~/.gemini/config/skills/shopify-dds-mastery/
├── SKILL.md              # Required: frontmatter + instructions
├── scripts/              # Optional: helper scripts
│   └── deploy.ps1
├── references/           # Optional: deep documentation
│   ├── json-ld-schemas.md
│   └── dds-constants.md
└── resources/            # Optional: templates, configs
    └── section-template.liquid

The SKILL.md file

YAML + Markdown — SKILL.md
---
name: shopify-dds-mastery
description: |
  Use this skill for ALL work on the Design Delight Studio
  Shopify store (ddsboston.com, Atelier 3.4.0 theme).
  Triggers on any task involving .liquid files, Shopify
  sections, JSON templates, section schema, or the DDS
  store.
---

# Shopify DDS Mastery

## When to Use
- Creating or editing any .liquid section file
- Building page templates for the Academy
- Working with Shopify Admin API (REST or GraphQL)
- Deploying theme assets via deploy.ps1

## Constraints
- All CSS scoped to section ID. No global selectors.
- JS in a single IIFE. No module imports.
- Wrap code blocks containing double-brace or tag syntax in raw/endraw
- SEO Magnet V3: 10 JSON-LD schemas, FAQ count == accordion count
- Brand: gold #FFE069 on #04090c. Playfair Display + DM Sans.
- Permitted certs only: GOTS / GRS / OCS / PETA-Approved Vegan / Fair Trade.

## Deploy Workflow
1. Deploy to staging theme (192259391669)
2. Render-verify cache-busted at 3 viewports
3. Promote to MAIN (191142756533) with length-parity
4. Re-GET from MAIN and confirm

What each part does

  • name — must match the folder name exactly. Lowercase, hyphens only.
  • description — the trigger clause. Write it from the agent's perspective: “Use this skill when...” This is the most important field because it controls whether the agent activates the skill. Too broad = false triggers. Too narrow = the agent never finds it.
  • Body — detailed instructions the agent follows when the skill activates. Keep it under 500 lines. If you need more, put the overflow in a references/ subdirectory and reference it from the body.

The 200-character rule

Keep your description under 200 characters of actionable text. The agent scans every installed skill's description at startup. Shorter descriptions load faster and match more precisely. If your description is a paragraph, the agent is doing fuzzy matching against a wall of text. That produces unreliable triggers.

Module 03

Trigger Matching

Answer Capsule At startup, the agent loads only the name and description from every installed skill. When you issue a task, the agent compares your request against all loaded descriptions. If a match is found, it reads the full SKILL.md body and any referenced files. This progressive disclosure model prevents context bloat from loading every skill at once.

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

QualityDescriptionProblem
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

  1. Install the skill in the correct directory.
  2. Open a new Antigravity session (the agent scans skills at startup, not mid-session).
  3. Issue a task that should activate the skill. Verify the agent follows your instructions.
  4. Issue a task that should not activate it. Verify it stays dormant.
  5. 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

Answer Capsule 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 parent but run in a separate context window. This prevents context pollution: the main agent stays focused on orchestration while subagents handle browser research, code generation, or test execution. Subagents can run in parallel, and Antigravity 2.0 (the standalone Agent Manager) makes this the default workflow.

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

Answer Capsule 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. 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 Antigravity instance runs 10 MCP servers: Shopify, Firebase, Cloud Run, AlloyDB, filesystem, Playwright, and more.

Configuration locations

  • Global: ~/.gemini/config/mcp_config.json — shared across all workspaces.
  • Workspace: .agents/mcp_config.json — project-specific servers only.
JSON — mcp_config.json (excerpt)
{
  "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 exposes read_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

Answer Capsule A task brief is the acceptance criteria for an agent's output. It specifies what to build, what constraints to follow, what gates to pass, and what to output. A good brief eliminates ambiguity so the agent does not have to guess. A bad brief produces output you have to manually fix, which defeats the purpose of agent-directed development.

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

  1. Scope + assumptions. What this task IS and IS NOT. What the agent should NOT touch. What it can assume exists.
  2. Metadata. Class number, handle, section filename, template filename, CSS prefix, section_id pattern.
  3. Research gate. What to research, what sources to use, what to mark as “Not verified.”
  4. Voice gate. Load dds_voice_core.md. Self-check: “would Robert McCullock actually write this?”
  5. 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.
  6. OG hand-off. Build with placeholder. Pause. Receive URL. Replace. Deploy.
  7. Deploy spec. Staging theme ID. Render-verify. MAIN promote with length parity. Page creation. Metafields. Re-GET verification.
  8. 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

Answer Capsule The Mastery lesson: never trust the agent's report that something is done. Verify against the source of truth. After deploying a Shopify section, re-GET it from the MAIN theme via the Admin API and confirm the byte length matches. After setting metafields, query them back. The agent says it succeeded? Verify. This discipline catches silent failures, partial writes, and hallucinated success messages.

Five rules of operator discipline

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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

Answer Capsule This is the Mastery capstone for the Antigravity lane. The lane progresses from onramp to first light to production to platform to capstone. Each class builds on the one before it. If you are here, you have already built projects with Antigravity. This class teaches you to build the system itself.
Onramp

Antigravity Onramp

Your first session. Environment setup, first agent conversation, first file edit.

First Light

Antigravity 2

Building real features. Multi-file edits, terminal commands, iterating on output.

Platform

Antigravity IDE 2.0

The IDE as a platform. Extensions, customization, workspace configuration.

Multi-Model

Multi-Model Orchestration

Running multiple models. Picking the right model for each task.

Mastery Capstone

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

Answer Capsule Templates you can paste into your Antigravity workspace right now: a minimal SKILL.md starter, an MCP config template, and prompts for subagent orchestration and brief design. Modify the specifics for your project. The structure is the transferable part.
Template 1 — Minimal SKILL.md
---
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]
Template 2 — MCP Config Starter
{
  "mcpServers": {
    "my-server": {
      "command": "npx",
      "args": ["-y", "@org/my-mcp-server"],
      "env": {
        "API_TOKEN": "${MY_API_TOKEN}"
      }
    }
  }
}
Prompt 1 — Subagent Orchestration
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.
Prompt 2 — Brief Design
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.
Prompt 3 — Skill Audit
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.
Key Takeaways

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.
The Bottom Line

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.