diff --git a/AGENTS.md b/AGENTS.md index 19cfe6a..9af4bfe 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -50,7 +50,9 @@ Consult these guides before working on related tasks: - Detail pages render the imported workflow and agent topology. Gallery cards instead show a fixed asset inventory for workflows, agents, tools, MCP servers, and skills so dense graphs are not compressed into unreadable - thumbnails. + thumbnails. Detail pages also use that inventory on phones; their interactive + graphs start at the 640px breakpoint, with compact agent and workflow lists + preserving the underlying information on smaller screens. - The browser receives compact allowlisted graph data. Raw schemas, icons, environment connection identifiers, and source blobs stay out of generated content. @@ -58,3 +60,6 @@ Consult these guides before working on related tasks: root; gallery sidecars are excluded. Downloads stay locked until the visitor acknowledges that community solutions should be reviewed and imported only from a trusted source. +- Shared links use the official Copilot Studio mark and the gallery's five asset + types in a dedicated 1200x630 social image. Keep Open Graph and X/Twitter + metadata aligned when changing the site's sharing identity. diff --git a/public/copilot-studio-gallery-social.png b/public/copilot-studio-gallery-social.png new file mode 100644 index 0000000..376d260 Binary files /dev/null and b/public/copilot-studio-gallery-social.png differ diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index f2cd779..d262b79 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -5,16 +5,22 @@ import { withBase } from "../lib/url"; interface Props { title?: string; description?: string; + socialTitle?: string; } const { title = "Copilot Studio Gallery", description = "Discover community-built Copilot Studio solutions through their agents and workflow canvases.", + socialTitle, } = Astro.props; const fullTitle = title === "Copilot Studio Gallery" ? title : `${title} · Copilot Studio Gallery`; +const shareTitle = socialTitle ?? fullTitle; +const canonicalUrl = new URL(Astro.url.pathname, Astro.site); +const socialImageUrl = new URL(withBase("/copilot-studio-gallery-social.png"), Astro.site); +const socialImageAlt = "Copilot Studio Gallery with workflow, agent, tool, MCP, and skill symbols."; --- @@ -33,11 +39,24 @@ const fullTitle = {fullTitle} - + + - + + + + + + + + + + + + +
diff --git a/src/pages/index.astro b/src/pages/index.astro index bfefcd6..688cafb 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -15,7 +15,7 @@ const contributors = collectContributors(solutions); const featuredSolutions = solutions.filter((solution) => solution.data.featured); --- - +
- +
+ +
+

Agents

{data.agentCount}

@@ -98,8 +109,8 @@ const heroGraph = data.workflows[0]?.graph ?? data.agentGraph;

Agent architecture

Select an agent, tool, or skill to inspect the published configuration.

-
- +
{data.agents.map((agent) => ( @@ -127,7 +138,24 @@ const heroGraph = data.workflows[0]?.graph ?? data.agentGraph;

Workflow canvases

These positions and connections come from the saved designer graph in the exported solution.

- +
+ { + data.workflows.map((workflow) => ( +
+

{workflow.id}

+

{workflow.name}

+
+ {workflow.trigger && Trigger: {workflow.trigger}} + {workflow.nodeCount} steps + {workflow.edgeCount} connections +
+
+ )) + } +
+