diff --git a/.github/workflows/agentic-auto-upgrade.yml b/.github/workflows/agentic-auto-upgrade.yml
index 092498db4fc..fe5b068f2f3 100644
--- a/.github/workflows/agentic-auto-upgrade.yml
+++ b/.github/workflows/agentic-auto-upgrade.yml
@@ -34,7 +34,7 @@ name: Agentic Auto-Upgrade
 
 on:
   schedule:
-    - cron: "21 3 * * 5"  # Weekly (auto-upgrade)
+    - cron: "11 4 * * 6"  # Weekly (auto-upgrade)
   workflow_dispatch:
 
 permissions:
diff --git a/actions/setup/js/parse_pi_log.test.cjs b/actions/setup/js/parse_pi_log.test.cjs
index 4011ea78bee..54a32419f79 100644
--- a/actions/setup/js/parse_pi_log.test.cjs
+++ b/actions/setup/js/parse_pi_log.test.cjs
@@ -245,7 +245,12 @@ describe("parse_pi_log.cjs", () => {
 
     it("detects the v3 schema and rejects the legacy schema", () => {
       expect(isPiV3Schema(v3Lines)).toBe(true);
-      expect(isPiV3Schema([{ type: "init", model: "pi-3" }, { type: "assistant", content: "hi" }])).toBe(false);
+      expect(
+        isPiV3Schema([
+          { type: "init", model: "pi-3" },
+          { type: "assistant", content: "hi" },
+        ])
+      ).toBe(false);
     });
 
     it("renders assistant text, tool calls, and tool results from a v3 stream", () => {
diff --git a/docs/src/content/docs/reference/auth.mdx b/docs/src/content/docs/reference/auth.mdx
index 6802ac111d1..e7981ec3c21 100644
--- a/docs/src/content/docs/reference/auth.mdx
+++ b/docs/src/content/docs/reference/auth.mdx
@@ -37,6 +37,12 @@ Configure the authentication method your engine needs before running your first
 - **Alternative:** None
 - **Notes:** API key from Google AI Studio
 
+### Antigravity
+
+- **Required secret:** [`ANTIGRAVITY_API_KEY`](#antigravity_api_key)
+- **Alternative:** None
+- **Notes:** API key for the Google Antigravity CLI
+
 Most workflows will run without any additional secrets or additional authentication beyond this one engine secret.
 
 ## Additional Authentication
@@ -339,6 +345,24 @@ See also [AI Engines](/gh-aw/reference/engines/#available-coding-agents) for add
 
 ---
 
+### `ANTIGRAVITY_API_KEY`
+
+If using the Antigravity by Google engine, you need to set a GitHub Actions secret `ANTIGRAVITY_API_KEY` with an API key for the Antigravity CLI.
+
+**Setup**:
+
+1. Create an API key at https://aistudio.google.com/api-keys
+
+2. Add it to your repository secrets, either by CLI or GitHub UI:
+
+   ```bash wrap
+   gh aw secrets set ANTIGRAVITY_API_KEY --value "YOUR_ANTIGRAVITY_API_KEY"
+   ```
+
+See also [AI Engines](/gh-aw/reference/engines/#available-coding-agents) for additional configuration needed when using Antigravity with GitHub MCP.
+
+---
+
 ## Troubleshooting auth errors
 
 Common authentication errors and how to resolve them:
diff --git a/docs/src/content/docs/reference/engines.md b/docs/src/content/docs/reference/engines.md
index 348f36911d1..d716345e8bb 100644
--- a/docs/src/content/docs/reference/engines.md
+++ b/docs/src/content/docs/reference/engines.md
@@ -1,6 +1,6 @@
 ---
 title: AI Engines (aka Coding Agents)
-description: Complete guide to AI engines (coding agents) usable with GitHub Agentic Workflows, including Copilot, Claude, Codex, Gemini, Crush, OpenCode, and Pi with their specific configuration options.
+description: Complete guide to AI engines (coding agents) usable with GitHub Agentic Workflows, including Copilot, Claude, Codex, Gemini, Antigravity, Crush, OpenCode, and Pi with their specific configuration options.
 sidebar:
   order: 600
 ---
@@ -17,6 +17,7 @@ Set `engine:` in your workflow frontmatter and configure the corresponding secre
 | [Claude by Anthropic (Claude Code)](https://www.anthropic.com/index/claude) | `claude` | [`ANTHROPIC_API_KEY`](/gh-aw/reference/auth/#anthropic_api_key) (standard) or [`engine.auth` Anthropic WIF](/gh-aw/reference/auth/#anthropic-workload-identity-federation-wif) (keyless) |
 | [OpenAI Codex](https://openai.com/blog/openai-codex) | `codex` | [OPENAI_API_KEY](/gh-aw/reference/auth/#openai_api_key) |
 | [Google Gemini CLI](https://github.com/google-gemini/gemini-cli) | `gemini` | [GEMINI_API_KEY](/gh-aw/reference/auth/#gemini_api_key) |
+| [Google Antigravity CLI](https://antigravity.google/docs/cli-overview) (experimental) | `antigravity` | [ANTIGRAVITY_API_KEY](/gh-aw/reference/auth/#antigravity_api_key) |
 | [Crush](https://github.com/charmbracelet/crush) (experimental) | `crush` | [COPILOT_GITHUB_TOKEN](/gh-aw/reference/auth/#copilot_github_token) |
 | [OpenCode](https://opencode.ai) (experimental) | `opencode` | [COPILOT_GITHUB_TOKEN](/gh-aw/reference/auth/#copilot_github_token) |
 | [Pi](https://www.npmjs.com/package/@earendil-works/pi-coding-agent) (experimental) | `pi` | [COPILOT_GITHUB_TOKEN](/gh-aw/reference/auth/#copilot_github_token) (default); switches to provider-specific secret when `model:` uses `provider/model` format |
@@ -71,6 +72,7 @@ By default, workflows install the latest available version of each engine CLI. T
 | Claude Code | `claude` | `"2.1.70"` |
 | Codex | `codex` | `"0.111.0"` |
 | Gemini CLI | `gemini` | `"0.31.0"` |
+| Antigravity CLI | `antigravity` | `"1.0.2-6113393518706688"` |
 | Crush | `crush` | `"1.2.14"` |
 | OpenCode | `opencode` | `"0.1.0"` |
 | Pi | `pi` | `"0.72.1"` |
diff --git a/eslint-factory/src/rules/require-return-after-core-setfailed.ts b/eslint-factory/src/rules/require-return-after-core-setfailed.ts
index cf861f4242c..09a8006c946 100644
--- a/eslint-factory/src/rules/require-return-after-core-setfailed.ts
+++ b/eslint-factory/src/rules/require-return-after-core-setfailed.ts
@@ -353,21 +353,21 @@ export const requireReturnAfterCoreSetFailedRule = createRule({
       const ancestors = sourceCode.getAncestors(stmt);
       const continuation = findContinuationOutsideBlock(stmt, ancestors);
       if (continuation !== null && !isControlTransfer(continuation)) {
-      reportNested(stmt);
+        reportNested(stmt);
       }
     }
 
     function checkDirectControlBody(stmt: TSESTree.Statement | null): void {
       if (stmt !== null && stmt.type !== AST_NODE_TYPES.BlockStatement && isCoreSetFailedStatement(stmt)) {
-      checkNestedContinuation(stmt);
+        checkNestedContinuation(stmt);
       }
     }
 
     return {
       IfStatement(node: TSESTree.IfStatement) {
-      for (const branch of [node.consequent, node.alternate]) {
-        checkDirectControlBody(branch);
-      }
+        for (const branch of [node.consequent, node.alternate]) {
+          checkDirectControlBody(branch);
+        }
       },
       // Check statement blocks: if body, else body, while body, function body, etc.
       BlockStatement(node: TSESTree.BlockStatement) {
diff --git a/pkg/parser/schema_test.go b/pkg/parser/schema_test.go
index f9c0680a5fc..a84b6d29949 100644
--- a/pkg/parser/schema_test.go
+++ b/pkg/parser/schema_test.go
@@ -2096,6 +2096,7 @@ func TestMainWorkflowSchema_GitHubAllowedSupportsToolCallLimits(t *testing.T) {
 			break
 		}
 	}
+
 	if githubObjectSchema == nil {
 		t.Fatal("tools.github object schema not found")
 	}
@@ -2135,6 +2136,51 @@ func TestMainWorkflowSchema_GitHubAllowedSupportsToolCallLimits(t *testing.T) {
 	}
 }
 
+func TestMainWorkflowSchema_DocumentsAntigravityEngine(t *testing.T) {
+	t.Parallel()
+
+	schemaContent, err := os.ReadFile("schemas/main_workflow_schema.json")
+	if err != nil {
+		t.Fatalf("failed to read schema: %v", err)
+	}
+
+	var schema map[string]any
+	if err := json.Unmarshal(schemaContent, &schema); err != nil {
+		t.Fatalf("failed to parse schema json: %v", err)
+	}
+
+	defs := schema["$defs"].(map[string]any)
+	engineConfig := defs["engine_config"].(map[string]any)
+	engineConfigOneOf := engineConfig["oneOf"].([]any)
+
+	stringEngineDesc := engineConfigOneOf[0].(map[string]any)["description"].(string)
+	if !strings.Contains(stringEngineDesc, "antigravity") {
+		t.Fatalf("expected engine string description to mention antigravity, got: %q", stringEngineDesc)
+	}
+
+	objectEngineDesc := engineConfigOneOf[1].(map[string]any)["properties"].(map[string]any)["id"].(map[string]any)["description"].(string)
+	if !strings.Contains(objectEngineDesc, "antigravity") {
+		t.Fatalf("expected engine.id description to mention antigravity, got: %q", objectEngineDesc)
+	}
+
+	inlineRuntime := engineConfigOneOf[2].(map[string]any)["properties"].(map[string]any)["runtime"].(map[string]any)
+	inlineRuntimeID := inlineRuntime["properties"].(map[string]any)["id"].(map[string]any)
+	inlineRuntimeDesc := inlineRuntimeID["description"].(string)
+	if !strings.Contains(inlineRuntimeDesc, "antigravity") {
+		t.Fatalf("expected runtime.id description to mention antigravity, got: %q", inlineRuntimeDesc)
+	}
+
+	inlineRuntimeExamples := inlineRuntimeID["examples"].([]any)
+	if inlineRuntimeExamples[0] != "antigravity" {
+		t.Fatalf("expected runtime.id examples to start with antigravity, got: %v", inlineRuntimeExamples)
+	}
+
+	engineDefinitionDesc := engineConfigOneOf[3].(map[string]any)["properties"].(map[string]any)["id"].(map[string]any)["description"].(string)
+	if !strings.Contains(engineDefinitionDesc, "antigravity") {
+		t.Fatalf("expected engine definition id description to mention antigravity, got: %q", engineDefinitionDesc)
+	}
+}
+
 // TestValidateMainWorkflowFrontmatterWithSchemaAndLocation_AwfApiProxyTargets verifies that
 // the sandbox.agent.targets frontmatter section is validated by the schema, accepting
 // valid authHeader strings and rejecting non-string values.
diff --git a/pkg/parser/schemas/main_workflow_schema.json b/pkg/parser/schemas/main_workflow_schema.json
index 55714a89d1e..9bb13c6cff7 100644
--- a/pkg/parser/schemas/main_workflow_schema.json
+++ b/pkg/parser/schemas/main_workflow_schema.json
@@ -12146,7 +12146,7 @@
       "oneOf": [
         {
           "type": "string",
-          "description": "Engine name: built-in ('claude', 'codex', 'copilot', 'gemini', 'opencode', 'crush', 'pi') or a named catalog entry"
+          "description": "Engine name: built-in ('antigravity', 'claude', 'codex', 'copilot', 'crush', 'gemini', 'opencode', 'pi') or a named catalog entry"
         },
         {
           "type": "object",
@@ -12154,7 +12154,7 @@
           "properties": {
             "id": {
               "type": "string",
-              "description": "AI engine identifier: built-in ('claude', 'codex', 'copilot', 'gemini', 'opencode', 'crush', 'pi') or a named catalog entry"
+              "description": "AI engine identifier: built-in ('antigravity', 'claude', 'codex', 'copilot', 'crush', 'gemini', 'opencode', 'pi') or a named catalog entry"
             },
             "version": {
               "type": ["string", "number"],
@@ -12431,8 +12431,8 @@
               "properties": {
                 "id": {
                   "type": "string",
-                  "description": "Runtime adapter identifier (e.g. 'codex', 'claude', 'copilot', 'gemini', 'opencode', 'crush', 'pi')",
-                  "examples": ["codex", "claude", "copilot", "gemini", "opencode", "crush", "pi"]
+                  "description": "Runtime adapter identifier (e.g. 'antigravity', 'claude', 'codex', 'copilot', 'crush', 'gemini', 'opencode', 'pi')",
+                  "examples": ["antigravity", "codex", "claude", "copilot", "gemini", "opencode", "crush", "pi"]
                 },
                 "version": {
                   "type": ["string", "number"],
@@ -12553,7 +12553,7 @@
           "properties": {
             "id": {
               "type": "string",
-              "description": "Unique engine identifier (e.g. 'copilot', 'claude', 'codex', 'gemini', 'opencode', 'crush', 'pi')"
+              "description": "Unique engine identifier (e.g. 'antigravity', 'claude', 'codex', 'copilot', 'crush', 'gemini', 'opencode', 'pi')"
             },
             "display-name": {
               "type": "string",
