diff --git a/assets/css/main.css b/assets/css/main.css
index 01bee26..838a966 100644
--- a/assets/css/main.css
+++ b/assets/css/main.css
@@ -58,3 +58,97 @@
no longer lined up with the nav). The reuse-image rules were also dead — the
extras `reuse-image` shortcode toggles `.toggle-dark`/`.toggle-light`, not
`.reuse-image-wrapper`. The theme aligns the navbar and sidebar itself. */
+
+/* ---------------------------------------------------------------------------
+ Landing page (layouts/index.html) — Solo.io design system.
+ Namespaced `ar-*` so nothing collides with Hextra / docs-theme-extras.
+
+ Theme-aware tokens are plain CSS variables flipped by the `.dark` class that
+ Hextra's theme toggle already puts on , and exposed to Tailwind via
+ `@theme inline` so `bg-ar-bg`, `text-ar-fg-2`, `border-ar-line` … follow the
+ active theme at runtime. Terminal tokens (`ar-term-*`) are fixed: terminals
+ stay dark in both themes.
+ --------------------------------------------------------------------------- */
+@custom-variant dark (&:where(.dark, .dark *));
+
+@layer base {
+ :root {
+ --ar-bg: #FFFFFF;
+ --ar-bg-alt: #F6F7FB;
+ --ar-footer: #EDEEF7;
+ --ar-fg: #151927;
+ --ar-fg-2: #3B4258;
+ --ar-fg-3: #6B7289;
+ --ar-fg-4: #9AA0B5;
+ --ar-line: rgba(21, 25, 39, .08);
+ --ar-line-2: rgba(21, 25, 39, .14);
+ --ar-fill: rgba(21, 25, 39, .04);
+ --ar-fill-2: rgba(21, 25, 39, .08);
+ --ar-nav: rgba(255, 255, 255, .80);
+ --ar-btn: #151927;
+ --ar-btn-fg: #FFFFFF;
+ --ar-glow: rgba(138, 63, 252, .16);
+ --ar-hero-glow: rgba(138, 63, 252, .18);
+ --ar-ui-gradient: linear-gradient(180deg, #FFFFFF, #F3EEFC 55%, #FFFFFF);
+ }
+ .dark {
+ --ar-bg: #0B0E18;
+ --ar-bg-alt: #0A0D17;
+ --ar-footer: #090C14;
+ --ar-fg: #FFFFFF;
+ --ar-fg-2: #C8CCDB;
+ --ar-fg-3: #8289A3;
+ --ar-fg-4: #5A6078;
+ --ar-line: rgba(255, 255, 255, .08);
+ --ar-line-2: rgba(255, 255, 255, .12);
+ --ar-fill: rgba(255, 255, 255, .04);
+ --ar-fill-2: rgba(255, 255, 255, .08);
+ --ar-nav: rgba(11, 14, 24, .72);
+ --ar-btn: #FFFFFF;
+ --ar-btn-fg: #0B0E18;
+ --ar-glow: rgba(138, 63, 252, .12);
+ --ar-hero-glow: rgba(138, 63, 252, .30);
+ --ar-ui-gradient: linear-gradient(180deg, #0B0E18, #110B20 55%, #0B0E18);
+ }
+}
+
+@theme inline {
+ --color-ar-bg: var(--ar-bg);
+ --color-ar-bg-alt: var(--ar-bg-alt);
+ --color-ar-footer: var(--ar-footer);
+ --color-ar-fg: var(--ar-fg);
+ --color-ar-fg-2: var(--ar-fg-2);
+ --color-ar-fg-3: var(--ar-fg-3);
+ --color-ar-fg-4: var(--ar-fg-4);
+ --color-ar-line: var(--ar-line);
+ --color-ar-line-2: var(--ar-line-2);
+ --color-ar-fill: var(--ar-fill);
+ --color-ar-fill-2: var(--ar-fill-2);
+ --color-ar-nav: var(--ar-nav);
+ --color-ar-btn: var(--ar-btn);
+ --color-ar-btn-fg: var(--ar-btn-fg);
+}
+
+@theme {
+ /* Fixed palette */
+ --color-ar-purple: #8A3FFC;
+ --color-ar-purple-hover: #9C55FF;
+ --color-ar-lilac: #C4A6FF;
+ --color-ar-success: #22C55E;
+ --color-ar-warning: #F59E0B;
+ --color-ar-danger: #EF4444;
+ /* Terminal (always dark) */
+ --color-ar-term: #0A0D17;
+ --color-ar-term-fg: #E6E8F0;
+ --color-ar-term-2: #C8CCDB;
+ --color-ar-term-3: #8289A3;
+ --color-ar-term-4: #5A6078;
+ --color-ar-dot: #2A3044;
+ --font-ar-sans: 'Figtree', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
+ --font-ar-mono: 'DM Mono', ui-monospace, 'SF Mono', Menlo, Consolas, monospace;
+ --ease-ar: cubic-bezier(.16, 1, .3, 1);
+ --animate-ar-blink: ar-blink 1.1s steps(1) infinite;
+ --animate-ar-breathe: ar-breathe 6s cubic-bezier(.2, .6, .2, 1) infinite;
+ @keyframes ar-blink { 0%, 49% { opacity: 1 } 50%, 100% { opacity: 0 } }
+ @keyframes ar-breathe { 0%, 100% { opacity: .5 } 50% { opacity: .85 } }
+}
diff --git a/hugo.yaml b/hugo.yaml
index 3920b17..9e74bed 100644
--- a/hugo.yaml
+++ b/hugo.yaml
@@ -39,7 +39,7 @@ params:
prodHost: "https://aregistry.ai"
theme:
- default: dark
+ default: system
displayToggle: true
navbar:
diff --git a/hugo_stats.json b/hugo_stats.json
index dcf7711..1bad3cb 100644
--- a/hugo_stats.json
+++ b/hugo_stats.json
@@ -11,7 +11,6 @@
"code",
"dialog",
"div",
- "em",
"figcaption",
"figure",
"footer",
@@ -20,7 +19,6 @@
"h2",
"h3",
"h4",
- "h5",
"head",
"html",
"iframe",
@@ -28,7 +26,6 @@
"input",
"kbd",
"li",
- "line",
"link",
"main",
"meta",
@@ -38,7 +35,6 @@
"p",
"path",
"polygon",
- "polyline",
"pre",
"rect",
"script",
@@ -57,38 +53,62 @@
"ul"
],
"classes": [
+ "-mb-[2px]",
+ "-translate-x-1/2",
+ "[&>div]:whitespace-pre",
+ "[&>svg]:h-4",
+ "[&>svg]:h-[15px]",
+ "[&>svg]:h-[22px]",
+ "[&>svg]:opacity-70",
+ "[&>svg]:w-4",
+ "[&>svg]:w-[15px]",
+ "[&>svg]:w-[22px]",
+ "[scrollbar-color:var(--ar-fg-4)_transparent]",
+ "[scrollbar-width:thin]",
"[word-break:break-word]",
- "accent",
- "active",
- "ar",
- "ar-orbit",
- "ar-orbit-center",
- "ar-orbit-dot",
- "ar-orbit-node",
- "ar-orbit-ring",
- "arg",
- "badge",
- "bb-panel",
- "bb-panel-desc",
- "bb-panel-link",
- "bb-panel-title",
- "bb-split",
- "bottom",
- "btn",
- "btn-dark",
- "btn-primary",
- "btn-secondary",
- "btns",
- "by-solo",
- "chev",
+ "absolute",
+ "animate-ar-blink",
+ "animate-ar-breathe",
+ "antialiased",
+ "ar-term",
+ "aria-selected:[&>svg]:opacity-100",
+ "aria-selected:[&>svg]:text-ar-purple",
+ "aria-selected:bg-ar-purple/10",
+ "aria-selected:border-ar-purple",
+ "aria-selected:border-ar-purple/40",
+ "aria-selected:text-ar-fg",
+ "aspect-[1440/900]",
+ "backdrop-blur-[18px]",
+ "bg-(image:--ar-ui-gradient)",
+ "bg-[#28C840]/80",
+ "bg-[#FEBC2E]/80",
+ "bg-[#FF5F57]/80",
+ "bg-[radial-gradient(120%_80%_at_50%_-10%,var(--ar-hero-glow),transparent_60%)]",
+ "bg-ar-bg",
+ "bg-ar-bg-alt",
+ "bg-ar-btn",
+ "bg-ar-fill",
+ "bg-ar-footer",
+ "bg-ar-nav",
+ "bg-ar-purple",
+ "bg-ar-purple/10",
+ "bg-ar-term",
+ "bg-linear-to-r",
+ "bg-white/3",
+ "block",
+ "border",
+ "border-ar-line",
+ "border-ar-line-2",
+ "border-ar-purple/25",
+ "border-b",
+ "border-b-2",
+ "border-t",
+ "border-transparent",
+ "border-white/10",
+ "border-white/8",
"chroma",
- "cmd",
- "code-block",
- "comment",
- "container",
- "container-narrow",
+ "col-start-1",
"content",
- "copy",
"copy-md-btn",
"copy-md-chevron",
"copy-md-dialog",
@@ -109,48 +129,67 @@
"copy-md-split",
"copy-md-toggle",
"copy-md-wrapper",
- "cta-banner",
- "cta-banner-inner",
- "cta-snippet",
- "dots",
- "eyebrow",
- "faq-a",
- "faq-item",
- "faq-list",
- "faq-q",
- "flow",
- "flow-arrow",
- "flow-block",
- "flow-block-icon",
- "flow-blocks",
- "flow-card",
- "flow-card-head",
- "flow-card-sub",
- "flow-gateway",
- "flow-gateway-logo",
- "flow-gateway-sub",
- "flow-gateway-title",
- "flow-infra",
- "flow-link",
- "flow-logo",
- "flow-muted",
- "flow-pair",
- "flow-pill",
- "flow-registry",
- "flow-row",
- "footer",
- "footer-bottom",
- "footer-brand",
- "footer-col",
- "footer-grid",
- "hero",
- "hero-bg",
- "hero-ctas",
- "hero-grid",
- "hero-inner",
- "hero-lockup",
- "hero-sub",
- "hero-tagline",
+ "cursor-pointer",
+ "dark:block",
+ "dark:hidden",
+ "duration-[400ms]",
+ "ease-ar",
+ "fixed",
+ "flex",
+ "flex-1",
+ "flex-col",
+ "flex-none",
+ "flex-wrap",
+ "focus-visible:ring-2",
+ "focus-visible:ring-ar-purple",
+ "font-ar-mono",
+ "font-ar-sans",
+ "font-medium",
+ "from-transparent",
+ "gap-1",
+ "gap-1.5",
+ "gap-10",
+ "gap-11",
+ "gap-12",
+ "gap-16",
+ "gap-2",
+ "gap-2.5",
+ "gap-3",
+ "gap-3.5",
+ "gap-4",
+ "gap-5",
+ "gap-6",
+ "gap-7",
+ "gap-8",
+ "gap-[18px]",
+ "gap-[22px]",
+ "gap-[26px]",
+ "gap-[3px]",
+ "gap-[7px]",
+ "gap-[9px]",
+ "gap-x-[22px]",
+ "gap-y-3",
+ "grid",
+ "grid-cols-[minmax(0,1fr)]",
+ "group",
+ "h-10",
+ "h-11",
+ "h-16",
+ "h-3.5",
+ "h-4",
+ "h-6",
+ "h-7",
+ "h-9",
+ "h-[1000px]",
+ "h-[1400px]",
+ "h-[15px]",
+ "h-[17px]",
+ "h-[18px]",
+ "h-[660px]",
+ "h-[9px]",
+ "h-auto",
+ "h-full",
+ "h-px",
"hextra-code-block",
"hextra-code-copy-btn",
"hextra-code-copy-btn-container",
@@ -173,7 +212,19 @@
"hextra-theme-toggle",
"hextra-theme-toggle-options",
"hextra-toc",
+ "hidden",
"highlight",
+ "hover:bg-ar-fill",
+ "hover:bg-ar-fill-2",
+ "hover:bg-ar-purple-hover",
+ "hover:bg-ar-purple/10",
+ "hover:bg-white/6",
+ "hover:opacity-90",
+ "hover:ring-1",
+ "hover:ring-ar-purple/40",
+ "hover:text-ar-fg",
+ "hover:text-white",
+ "hover:underline",
"hx:-mb-0.5",
"hx:-ml-2",
"hx:-mr-2",
@@ -442,46 +493,116 @@
"hx:z-20",
"hx:z-50",
"hx:z-[-1]",
- "icon-moon",
- "icon-sun",
- "left",
- "link-arrow",
- "mf-label",
- "mf-num",
- "mf-step",
- "mini-flow",
- "nav",
- "nav-brand",
- "nav-inner",
- "nav-link",
- "nav-link-kbd",
- "nav-links",
+ "inline-block",
+ "inline-flex",
+ "inset-0",
+ "inset-x-0",
+ "items-center",
+ "items-start",
+ "justify-center",
+ "leading-[1.02]",
+ "leading-[1.12]",
+ "leading-[1.15]",
+ "leading-[1.1]",
+ "leading-[1.55]",
+ "leading-[1.6]",
+ "leading-[1.75]",
+ "leading-[1.9]",
+ "left-1/2",
+ "lg:gap-0",
+ "lg:gap-16",
+ "lg:grid",
+ "lg:grid-cols-[minmax(0,.92fr)_minmax(0,1.08fr)]",
+ "lg:grid-cols-[minmax(0,.9fr)_minmax(0,1.1fr)]",
+ "lg:hidden",
+ "lg:justify-center",
+ "lg:min-h-[80vh]",
+ "lg:py-10",
+ "list-none",
+ "m-0",
+ "max-w-[1200px]",
+ "max-w-[600px]",
+ "max-w-[660px]",
+ "max-w-[680px]",
+ "max-w-[720px]",
+ "max-w-[820px]",
+ "max-w-[900px]",
+ "max-w-[960px]",
+ "max-w-full",
+ "md:flex",
+ "md:grid-cols-3",
+ "md:ml-0",
+ "min-w-0",
+ "ml-2",
+ "ml-auto",
+ "mr-1",
+ "mt-1",
+ "mt-2",
+ "mt-6",
+ "mx-auto",
+ "opacity-0",
+ "opacity-100",
+ "opacity-80",
"openapi-container",
+ "overflow-hidden",
+ "overflow-x-auto",
+ "overflow-x-hidden",
+ "overflow-y-auto",
+ "p-0",
+ "p-5",
+ "p-[22px]",
"page-description",
+ "pb-18",
+ "pb-2.5",
+ "pb-20",
+ "pb-28",
+ "pb-5",
+ "pb-[104px]",
+ "pl-5",
"pnf-code",
- "preview-appbar",
- "preview-appbar-brand",
- "preview-appbar-right",
- "preview-appbar-tab",
- "preview-appbar-tabs",
- "preview-scroll",
- "preview-window-chrome",
- "product-preview",
- "prompt",
- "qs-step",
- "qs-step-num",
- "quickstart",
- "quickstart-steps",
+ "pointer-events-none",
+ "pr-2",
+ "pt-1.5",
+ "pt-2",
+ "pt-24",
+ "pt-4",
+ "pt-[120px]",
+ "pt-[3px]",
+ "px-2",
+ "px-3",
+ "px-3.5",
+ "px-4",
+ "px-5",
+ "px-6",
+ "px-[18px]",
+ "px-[22px]",
+ "py-1",
+ "py-1.5",
+ "py-11",
+ "py-2",
+ "py-24",
+ "py-3",
+ "py-6",
+ "py-[5px]",
+ "py-[9px]",
+ "relative",
"reuse-image-nodark",
- "right",
- "section",
+ "rounded-[14px]",
+ "rounded-full",
+ "rounded-md",
+ "rounded-xl",
+ "row-start-1",
+ "scroll-smooth",
"section-card",
"section-card-body",
"section-card-desc",
"section-card-title",
"section-cards",
- "section-head",
- "section-pad-sm",
+ "shadow-[0_24px_80px_-20px_rgba(11,14,24,.55),0_0_80px_var(--ar-glow)]",
+ "shadow-[0_24px_80px_-20px_rgba(11,14,24,.55)]",
+ "shadow-[0_30px_100px_-30px_rgba(11,14,24,.45),0_0_120px_var(--ar-glow)]",
+ "shadow-[0_8px_30px_-12px_rgba(11,14,24,.25)]",
+ "shrink-0",
"sidebar-active-item",
"sidebar-children",
"sidebar-container",
@@ -497,7 +618,12 @@
"sidebar-nav",
"sidebar-nav-wrapper",
"sidebar-toggle",
- "socials",
+ "sm:h-[92px]",
+ "sm:inline",
+ "sm:inline-flex",
+ "sm:ml-auto",
+ "sm:text-[38px]",
+ "sm:text-[44px]",
"solo-breadcrumb",
"solo-breadcrumb-back",
"solo-breadcrumb-home",
@@ -516,25 +642,73 @@
"solo-toc-item",
"solo-toc-link",
"solo-toc-sublist",
- "split",
- "split-card",
- "split-card-eyebrow",
+ "sticky",
"subheading-anchor",
"table-capped",
"table-wrapper",
- "terminal",
- "terminal-badges",
- "terminal-body",
- "terminal-chrome",
- "terminal-dots",
- "terminal-stage",
- "terminal-title",
- "theme-toggle",
- "tick",
+ "text-[11px]",
+ "text-[13.5px]",
+ "text-[13px]",
+ "text-[15px]",
+ "text-[17px]",
+ "text-[19px]",
+ "text-[32px]",
+ "text-[36px]",
+ "text-[clamp(28px,3.4vw,46px)]",
+ "text-[clamp(32px,3.6vw,46px)]",
+ "text-[clamp(34px,4.2vw,58px)]",
+ "text-[clamp(34px,4vw,52px)]",
+ "text-ar-btn-fg",
+ "text-ar-fg",
+ "text-ar-fg-2",
+ "text-ar-fg-3",
+ "text-ar-fg-4",
+ "text-ar-purple",
+ "text-ar-success",
+ "text-ar-term-2",
+ "text-ar-term-3",
+ "text-ar-term-4",
+ "text-ar-term-fg",
+ "text-balance",
+ "text-base",
+ "text-center",
+ "text-left",
+ "text-lg",
+ "text-pretty",
+ "text-sm",
+ "text-white",
+ "text-xs",
+ "to-transparent",
"toggle-dark",
"toggle-light",
- "top",
- "url"
+ "top-5",
+ "top-[-190px]",
+ "top-[-300px]",
+ "top-[-420px]",
+ "top-[112px]",
+ "tracking-[-.025em]",
+ "tracking-[-.02em]",
+ "tracking-[-.03em]",
+ "transition-colors",
+ "transition-opacity",
+ "truncate",
+ "via-ar-line-2",
+ "w-11",
+ "w-2",
+ "w-3.5",
+ "w-4",
+ "w-9",
+ "w-[1000px]",
+ "w-[1400px]",
+ "w-[15px]",
+ "w-[17px]",
+ "w-[18px]",
+ "w-[660px]",
+ "w-[9px]",
+ "w-auto",
+ "w-full",
+ "whitespace-nowrap",
+ "z-50"
],
"ids": [
"about-prompts",
@@ -544,21 +718,16 @@
"add-a-tool",
"add-an-mcp-server-to-the-agent",
"agents",
- "ar-orbit",
+ "ar-stack",
"arctl-cli",
"artifact-registry-infrastructure",
"artifacts",
"backToTop",
- "bb-panel",
- "bb-panel-desc",
- "bb-panel-link",
- "bb-panel-title",
"before-you-begin",
"build-package-and-deploy",
"build-the-agent-image",
"build-the-image",
"catalog",
- "catalog-preview",
"centralized-governance-and-curation",
"challenges-with-ai-artifacts",
"cleanup",
@@ -578,10 +747,7 @@
"discovery-across-environments",
"evaluation",
"explore-the-ui",
- "faqs",
"favicon-svg",
- "features",
- "gateway",
"get-started",
"global-flags",
"how-agentregistry-fills-the-gaps",
@@ -603,7 +769,6 @@
"pnf-suggestion-list",
"pnf-suggestions",
"postgresql",
- "preview-appbar",
"prompts",
"public-disclosure",
"publish-the-agent",
@@ -611,6 +776,8 @@
"publish-the-server",
"publish-the-skill",
"pull-a-skill-from-the-registry",
+ "qs-copy",
+ "qs-term",
"quickstart",
"register-the-remote-mcp-server",
"registry-server",
@@ -645,11 +812,14 @@
"tabs-tab-tabs-01-1",
"tabs-tab-tabs-02-0",
"tabs-tab-tabs-02-1",
- "terminal",
- "terminal-body",
"test-the-deployed-server",
"theme-toggle",
+ "top",
"tribal-knowledge-and-informal-sharing",
+ "ui",
+ "ui-preview",
+ "ui-scroll",
+ "ui-url",
"updates-and-questions",
"usage",
"verify-the-agent",
diff --git a/layouts/index.html b/layouts/index.html
index 7d9b65b..36a32b7 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,17 +1,16 @@
-
+
agentregistry — Build. Deploy. Discover.
-{{- /* This is a standalone landing template that does NOT call the theme's
- head.html, so the SEO metadata head.html normally emits is added here by
- hand: description (from front matter), canonical, robots, OpenGraph,
- schema.org JSON-LD, and the Twitter/X card. opengraph.html ships with
- Hextra and works today; schema.html and twitter_cards.html are provided by
- docs-theme-extras and start emitting once the extras pin is bumped (before
- that they resolve to Hextra's empty stubs and emit nothing). Without this,
- sharing the site root produced no social card despite the OG image. */ -}}
+{{- /* Standalone landing template (does NOT go through the theme's head.html),
+ so the SEO metadata head.html normally emits is added here by hand:
+ description (from front matter), canonical, robots, OpenGraph, schema.org
+ JSON-LD and the Twitter/X card. Styling is Tailwind utilities compiled by
+ the same css.html pipeline the docs use; the `ar-*` design tokens (light
+ and dark palettes) live in assets/css/main.css. Layout follows the Solo.io
+ design-system landing ("Agentregistry Landing" in Claude Design). */ -}}
{{- with .Params.canonical }}
@@ -22,610 +21,738 @@
{{- partial "opengraph.html" . -}}
{{- partial "schema.html" . -}}
{{- partial "twitter_cards.html" . -}}
-
-
+
+
+
+
+{{ with (templates.Defer (dict "key" "global")) }}
+ {{ partial "css.html" . }}
+{{ end }}
+
-
+
+{{- /* ------------------------------------------------------------------
+ Content data for the four scroll-driven "areas". Each area renders a
+ text block on the left and a terminal pane on the right (sticky on
+ desktop, inline on mobile) from this single source. Commands mirror
+ the real arctl CLI (`arctl get|init|apply|pull|build|wait`) and the
+ resource names are from the sample catalog.
+ ------------------------------------------------------------------ */ -}}
+{{- $P := `❯ ` -}}
+{{- $OK := `✓ ` -}}
+{{- $cursor := `` -}}
+{{- $muted := `%s` -}}
+{{- $cmd := `%s` -}}
+{{- $areas := slice
+ (dict
+ "id" "servers"
+ "icon" ``
+ "title" "MCP Tools & Servers"
+ "desc" "Pull servers from npm, PyPI, OCI, or a remote URL into a catalog your platform team controls, then deploy them as Kubernetes workloads."
+ "bullets" (slice
+ "Search the registry by name, publisher, or tool"
+ "Enrichment scores and verified-publisher signals on every entry"
+ "Deployed through kagent as native Kubernetes resources")
+ "termTitle" "~/registry — arctl"
+ "termMeta" "registry: registry.acme.dev"
+ "lines" (slice
+ (printf `%s%s` $P (printf $cmd "arctl get mcps"))
+ (printf $muted "NAME TAG DESCRIPTION")
+ `k8s-cluster-inspector latest Query live cluster state — pods, deployments...`
+ `k8s-helm-release-mgr latest List, diff, rollback, and explain Helm releases...`
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl apply -f k8s-cluster-inspector/deployment.yaml"))
+ (printf `%sDeployment/k8s-cluster-inspector created` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl wait deployment k8s-cluster-inspector"))
+ (printf `%sdeployment k8s-cluster-inspector reached deployed on kubernetes-default` $OK)
+ ` `
+ (printf `%s%s` $P $cursor)))
+ (dict
+ "id" "skills"
+ "icon" ``
+ "title" "Skills"
+ "desc" "Skills are versioned artifacts in the same catalog as everything else. Scaffold one, publish it, and anyone can pull it by name."
+ "bullets" (slice
+ `Scaffold with arctl init skill`
+ `Publish with a single arctl apply`
+ "Pull into a repo, or bundle into an agent blueprint")
+ "termTitle" "~/team-skills — arctl"
+ "termMeta" "registry: registry.acme.dev"
+ "lines" (slice
+ (printf `%s%s` $P (printf $cmd "arctl init skill k8s-runbook"))
+ (printf `%sCreated skill: k8s-runbook` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl apply -f k8s-runbook/skill.yaml"))
+ (printf `%sSkill/k8s-runbook (latest) created` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl get skills"))
+ (printf $muted "NAME TAG DESCRIPTION")
+ `k8s-runbook latest Playbook for CrashLoopBackOff, ImagePullBackOff...`
+ `k8s-yaml-review latest Review Deployments, HPA, PDB, and NetworkPolicy...`
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl pull skill k8s-yaml-review ./.claude/skills"))
+ (printf `%spulled skill/k8s-yaml-review (latest) into ./.claude/skills` $OK)
+ ` `
+ (printf `%s%s` $P $cursor)))
+ (dict
+ "id" "agents"
+ "icon" ``
+ "title" "Agents"
+ "desc" "A blueprint records what an agent is — its identity, model, servers, skills, and prompts. Deploy it and kagent materialises it as native Kubernetes resources."
+ "bullets" (slice
+ `Build, push, and version blueprints with arctl`
+ "One registry, many connected clusters"
+ "Approve before deploy, with publisher and trust signals")
+ "termTitle" "~/agents — arctl"
+ "termMeta" "runtime: kubernetes-default"
+ "lines" (slice
+ (printf `%s%s` $P (printf $cmd "arctl init agent k8sops --framework adk --language python"))
+ (printf `%sCreated agent: k8sops (framework: adk, language: python)` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl build ./k8sops --push"))
+ (printf `%spushed ghcr.io/acme/k8sops:latest` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl apply -f k8sops/agent.yaml -f k8sops/deployment.yaml"))
+ (printf `%sAgent/k8sops (latest) created` $OK)
+ (printf `%sDeployment/k8sops-agent created` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl get deployments"))
+ (printf $muted "NAME TARGET VERSION TYPE RUNTIME STATUS")
+ `default/k8sops-agent k8sops latest agent kubernetes-default deployed`
+ ` `
+ (printf `%s%s` $P $cursor)))
+ (dict
+ "id" "prompts"
+ "icon" ``
+ "title" "Prompts"
+ "desc" "Publish a prompt once and every agent referencing it picks up the pinned tag. Review the change before it ships."
+ "bullets" (slice
+ "Tagged versions, pinned per agent"
+ "See which agents consume each version"
+ "Served to clients through the registry MCP server")
+ "termTitle" "~/prompts — arctl"
+ "termMeta" "registry: registry.acme.dev"
+ "lines" (slice
+ (printf `%s%s` $P (printf $cmd `arctl init prompt k8s-sre-operator --description "Careful Kubernetes operator"`))
+ (printf `%sCreated prompt: k8s-sre-operator` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl apply -f k8s-sre-operator.yaml"))
+ (printf `%sPrompt/k8s-sre-operator (latest) created` $OK)
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl get prompts"))
+ (printf $muted "NAME TAG DESCRIPTION")
+ `k8s-sre-operator latest System prompt for a careful Kubernetes operator...`
+ `k8s-platform-engineer latest System prompt for Helm, GitOps, and golden-path...`
+ ` `
+ (printf `%s%s` $P (printf $cmd "arctl get prompt k8s-sre-operator -o yaml"))
+ (printf $muted "apiVersion: ar.dev/v1alpha1")
+ (printf $muted "kind: Prompt")
+ ` `
+ (printf `%s%s` $P $cursor)))
+-}}
+
+{{- /* Terminal pane: chrome bar + monospace body. `.` is an area dict. */ -}}
+{{- define "partials/ar-terminal.html" }}
+
+
+
+
+
+ {{ .termTitle }}
+ {{ .termMeta }}
+
+
+ {{- range .lines -}}
{{ . | safeHTML }}
{{- end }}
+
+
+{{- end }}
+
+
-