Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion docs/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import remarkTableDataLabels from "./src/lib/remark/tableDataLabels.js";
import remarkInlineMarkdownInHtml from "./src/lib/remark/inlineMarkdownInHtml.js";
import remarkAgenticsWorkflow from "./src/lib/remark/agenticsWorkflow.js";
import rehypeTableWrapper from "./src/lib/rehype/tableWrapper.js";
import { siteDescription } from "./src/lib/site-description.js";

const agenticsWorkflowsDirectory = process.env.AGENTICS_WORKFLOWS_DIR ?? fileURLToPath(new URL("../../agentics/workflows/", import.meta.url));

Expand Down Expand Up @@ -268,7 +269,7 @@ export default defineConfig({
mermaid(),
starlight({
title: "GitHub Agentic Workflows",
description: "Intelligent automation for GitHub with Copilot, Claude, Codex or Gemini. Agents triage, investigate and open pull requests with guardrails and cost controls.",
description: siteDescription,
favicon: "/favicon.svg",
logo: {
src: "./src/assets/agentic-workflow.svg",
Expand Down
8 changes: 4 additions & 4 deletions docs/src/components/CustomHead.astro
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
---
import type { Props } from '@astrojs/starlight/props';
import { getCollection } from 'astro:content';
import { siteDescription } from '../lib/site-description.js';

type BlogAuthor = {
name?: string;
Expand All @@ -25,8 +26,7 @@ const isHomePage = isDocsHomePage || rawPageTitle === siteTitle;
const ogTitle = isHomePage ? siteTitle : `${rawPageTitle} | ${siteTitle}`;

// Default description (110-160 chars optimal for OG)
const defaultDescription = 'Intelligent automation for GitHub with Copilot, Claude, Codex or Gemini. Agents triage, investigate and open pull requests with guardrails and cost controls.';
const pageDescription = entry?.data?.description || defaultDescription;
const pageDescription = entry?.data?.description || siteDescription;

// Social image: the site card (src/og/OgHome.astro, `npm run og`) for the home
// page and pages outside the docs collection; otherwise the page's own card
Expand Down Expand Up @@ -98,7 +98,7 @@ const homeJsonLd = {
'@id': websiteId,
name: schemaWebsiteName,
url: siteUrl,
description: defaultDescription,
description: siteDescription,
publisher: {
'@id': organizationId,
},
Expand Down Expand Up @@ -139,7 +139,7 @@ const homeJsonLd = {
'@id': `${siteUrl}#software`,
name: siteTitle,
url: siteUrl,
description: defaultDescription,
description: siteDescription,
applicationCategory: 'DeveloperApplication',
operatingSystem: 'Any',
dateModified: '2026-05-09',
Expand Down
2 changes: 1 addition & 1 deletion docs/src/components/landing/HeroVA.astro
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ const engines = [
{ id: 'copilot', name: 'Copilot' },
{ id: 'claude', name: 'Claude' },
{ id: 'codex', name: 'Codex' },
{ id: 'gemini', name: 'Gemini' },
{ id: 'antigravity', name: 'Antigravity' },
];
---

Expand Down
7 changes: 7 additions & 0 deletions docs/src/components/landing/HowItWorksEngineLogos.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
// Monochrome engine marks (rendered with currentColor).
// Copilot, Claude, OpenAI and Gemini from Simple Icons (CC0, https://simpleicons.org);
// Antigravity silhouette from https://antigravity.google/favicon.svg;
// Pi from https://pi.dev/favicon.svg. Trademarks belong to their respective owners.
export interface EngineLogo {
viewBox: string;
Expand All @@ -25,6 +26,12 @@ export const engineLogos: Record<string, EngineLogo> = {
"M22.2819 9.8211a5.9847 5.9847 0 0 0-.5157-4.9108 6.0462 6.0462 0 0 0-6.5098-2.9A6.0651 6.0651 0 0 0 4.9807 4.1818a5.9847 5.9847 0 0 0-3.9977 2.9 6.0462 6.0462 0 0 0 .7427 7.0966 5.98 5.98 0 0 0 .511 4.9107 6.051 6.051 0 0 0 6.5146 2.9001A5.9847 5.9847 0 0 0 13.2599 24a6.0557 6.0557 0 0 0 5.7718-4.2058 5.9894 5.9894 0 0 0 3.9977-2.9001 6.0557 6.0557 0 0 0-.7475-7.0729zm-9.022 12.6081a4.4755 4.4755 0 0 1-2.8764-1.0408l.1419-.0804 4.7783-2.7582a.7948.7948 0 0 0 .3927-.6813v-6.7369l2.02 1.1686a.071.071 0 0 1 .038.052v5.5826a4.504 4.504 0 0 1-4.4945 4.4944zm-9.6607-4.1254a4.4708 4.4708 0 0 1-.5346-3.0137l.142.0852 4.783 2.7582a.7712.7712 0 0 0 .7806 0l5.8428-3.3685v2.3324a.0804.0804 0 0 1-.0332.0615L9.74 19.9502a4.4992 4.4992 0 0 1-6.1408-1.6464zM2.3408 7.8956a4.485 4.485 0 0 1 2.3655-1.9728V11.6a.7664.7664 0 0 0 .3879.6765l5.8144 3.3543-2.0201 1.1685a.0757.0757 0 0 1-.071 0l-4.8303-2.7865A4.504 4.504 0 0 1 2.3408 7.872zm16.5963 3.8558L13.1038 8.364 15.1192 7.2a.0757.0757 0 0 1 .071 0l4.8303 2.7913a4.4944 4.4944 0 0 1-.6765 8.1042v-5.6772a.79.79 0 0 0-.407-.667zm2.0107-3.0231l-.142-.0852-4.7735-2.7818a.7759.7759 0 0 0-.7854 0L9.409 9.2297V6.8974a.0662.0662 0 0 1 .0284-.0615l4.8303-2.7866a4.4992 4.4992 0 0 1 6.6802 4.66zM8.3065 12.863l-2.02-1.1638a.0804.0804 0 0 1-.038-.0567V6.0742a4.4992 4.4992 0 0 1 7.3757-3.4537l-.142.0805L8.704 5.459a.7948.7948 0 0 0-.3927.6813zm1.0976-2.3654l2.602-1.4998 2.6069 1.4998v2.9994l-2.5974 1.4997-2.6067-1.4997Z",
],
},
antigravity: {
viewBox: "13 18 85 78",
paths: [
"M89.6992 93.695C94.3659 97.195 101.366 94.8617 94.9492 88.445C75.6992 69.7783 79.7825 18.445 55.8659 18.445C31.9492 18.445 36.0325 69.7783 16.7825 88.445C9.78251 95.445 17.3658 97.195 22.0325 93.695C40.1159 81.445 38.9492 59.8617 55.8659 59.8617C72.7825 59.8617 71.6159 81.445 89.6992 93.695Z",
],
},
gemini: {
viewBox: "0 0 24 24",
paths: [
Expand Down
2 changes: 1 addition & 1 deletion docs/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
title: Home
description: Intelligent automation for GitHub with Copilot, Claude, Codex or Gemini. Agents triage, investigate and open pull requests with guardrails and cost controls.
description: Intelligent automation for GitHub with Copilot, Claude, Codex or Antigravity. Agents triage, investigate and open pull requests with guardrails and cost controls.
template: splash
tableOfContents: false
---
Expand Down
1 change: 1 addition & 0 deletions docs/src/lib/site-description.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
export const siteDescription = "Intelligent automation for GitHub with Copilot, Claude, Codex or Antigravity. Agents triage, investigate and open pull requests with guardrails and cost controls.";
19 changes: 19 additions & 0 deletions docs/tests/homepage-links.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,25 @@ test.describe("Homepage Links", () => {
await expect(page).toHaveURL(/\/gh-aw\/setup\/creating-workflows\//);
});

test("should feature Antigravity branding in the hero and metadata", async ({ page }) => {
const hero = page.locator(".aw-hero-sub:visible");
await expect(hero).toContainText("Antigravity");
await expect(hero).not.toContainText("Google Antigravity");
await expect(hero).not.toContainText("Gemini");

const logo = hero.locator(".aw-engine", { hasText: "Antigravity" }).locator("svg");
await expect(logo).toBeVisible();
await expect(logo).toHaveAttribute("viewBox", "13 18 85 78");
await expect(logo).toHaveAttribute("aria-hidden", "true");
await expect(logo.locator("path")).toHaveCount(1);

for (const selector of ['meta[name="description"]', 'meta[property="og:description"]', 'meta[name="twitter:description"]']) {
await expect(page.locator(selector)).toHaveAttribute("content", /Antigravity/);
await expect(page.locator(selector)).not.toHaveAttribute("content", /Google Antigravity/);
await expect(page.locator(selector)).not.toHaveAttribute("content", /Gemini/);
}
});

test("should provide accessible labels for homepage videos", async ({ page }) => {
const videos = page.locator(".aw-watch-frame video");
await expect(videos).toHaveCount(2);
Expand Down
8 changes: 8 additions & 0 deletions docs/tests/social-card.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -48,3 +48,11 @@ test("falls back to the site image for pages outside the docs collection", async

await expect(page.locator('meta[property="og:image"]')).toHaveAttribute("content", "https://github.github.com/gh-aw/og-home-1200x630.png");
});

test("keeps the fallback page description consistent with social metadata", async ({ page }) => {
await page.goto("/gh-aw/blog/");

const description = "Intelligent automation for GitHub with Copilot, Claude, Codex or Antigravity. Agents triage, investigate and open pull requests with guardrails and cost controls.";
await expect(page.locator('meta[name="description"]')).toHaveAttribute("content", description);
await expect(page.locator('meta[property="og:description"]')).toHaveAttribute("content", description);
});
Loading