{"id":"dc27a5a9-3e24-4f7c-a19f-9bcc767ede7a","slug":"archify-gcp","kind":"skill","name":"archify-gcp","summary":"Agent skill that turns typed JSON into Google Cloud architecture diagrams with official icons, cost estimates and a Well-Architected review. Outputs HTML, SVG, PNG and draw.io. Install: npx skills add","owner":"akashtalole","repoUrl":"https://github.com/akashtalole/archify-gcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":2,"match":null,"fewStars":true,"format":"skill","createdAt":"2026-10-02T17:04:38.000Z","addedAt":"2026-10-21T10:28:07.542Z","logoUrl":"https://avatars.githubusercontent.com/u/10166338?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["cloud-infra","developer-tools","browser-web"],"tags":["agentic-ai","agentic-coding","claude-code","cursor","drawio","github-copilot","kiro","opencode"],"runtime":"node","local":true,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-26T18:55:31.389Z","sample":false,"url":"https://conduits.dev/tools/archify-gcp","language":"JavaScript","transports":["stdio"],"install":{"npm":"archify-gcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# archify-gcp\n\nGenerate **Google Cloud architecture diagrams** from a typed JSON spec — using the **official Google Cloud icons**, Google Cloud Architecture Center-style groups,\nand an advisory **Google Cloud Well-Architected Framework** review, with an optional **monthly cost estimate** from the Cloud Billing Catalog API.\nA companion to [tt-a1i/archify](https://github.com/tt-a1i/archify) and the Google Cloud sibling of [archify-aws](https://github.com/akashtalole/archify-aws) and\n[archify-azure](https://github.com/akashtalole/archify-azure): describe the system, get a standalone, explorable HTML (plus SVG/PNG/draw.io) and a receipt of what was checked.\n\n| Three-tier across two zones | RAG assistant on Vertex AI |\n|---|---|\n| ![three-tier](examples/out/three-tier.png) | ![genai-rag](examples/out/genai-rag.png) |\n\nEnterprise product catalog search: [architecture](examples/out/product-catalog-search.png) · [page](examples/out/product-catalog-search.html) · [draw.io](examples/out/product-catalog-search.drawio)\nServerless API: [architecture](examples/out/serverless-api.png) · Agent tool call: [sequence](examples/out/agent-tool-call.sequence.png) · Clinical notes: [dataflow](examples/out/clinical-notes.dataflow.png)\n\nMulti-agent ADK on Cloud Run: [architecture](examples/multi-agent-adk-cloud-run/out/architecture.png) · [sequence](examples/multi-agent-adk-cloud-run/out/order-question.sequence.png) · [dataflow](examples/multi-agent-adk-cloud-run/out/agent-delivery.dataflow.png) ([details](examples/multi-agent-adk-cloud-run/README.md))\n\nMulti-cloud AI platform (AWS + Azure + Google Cloud icons): [architecture](examples/multi-cloud-ai-platform/out/architecture.png) ([details](examples/multi-cloud-ai-platform/README.md))\n\n## Install as an agent skill\n```bash\nnpx skills add akashtalole/archify-gcp\n```\nInstalls the skill into your agent (Claude Code, Cursor, Codex and others; the CLI asks which). The official icons are downloaded automatically the first time you render (network needed once; set `ARCHIFY_NO_AUTOFETCH=1` to disable). The sibling skills install the same way: `akashtalole/archify-aws`, `akashtalole/archify-azure`, `akashtalole/archify-gcp`.\n\n## Quick start (from a clone)\n```bash\ngit clone https://github.com/akashtalole/archify-gcp && cd archify-gcp\nnpm run icons:fetch                                  # official icons → assets/gcp-icons/ (git-ignored)\nnode bin/archify-gcp.mjs render examples/genai-rag.json --png --drawio\nopen examples/out/genai-rag.html           # tabs: Diagram · Well-Architected review (· Cost when a price book exists)\nopen \"examples/out/genai-rag.html?tab=wa\"\n```\nNode ≥ 20, **no npm dependencies**. PNG export needs Chrome/Chromium (`CHROME_PATH` or a Playwright browser).\n\n### Cost estimates need your own API key\nThe Cloud Billing Catalog API requires an API key (enable the *Cloud Billing API* on a project and create a key):\n```bash\nGOOGLE_API_KEY=… npm run prices:fetch        # builds data/prices/us-central1.json (on-demand list prices)\nnode bin/archify-gcp.mjs cost examples/three-tier.json\n```\nWithout a price book the Cost tab is omitted and everything else works. The SKU patterns behind the pricers were written without access to a live catalog:\nthe first `prices:fetch` shows which services need a pattern adjustment (a non-matching pricer reports `needs-input`, never a wrong number).\n\n### Use it from an AI agent\n`SKILL.md` is an agent skill (same shape as Archify's). Point your agent at this repo and say, e.g.:\n*\"Use archify-gcp to diagram a multi-zone GKE app behind Cloud Load Balancing with Cloud SQL, and review it against the Well-Architected pillars.\"*\n\n## What you get\n* **Official icons** — 223 Google Cloud product icons (the current-brand core set replaces the legacy icon where Google publishes one), the 26 product **category** icons (Compute, Agents, Observability… as `category-*`) and 10 original general icons; `icons search`, aliases (`gke`, `bq`, `gcs`, `kms`, `iap`, `vertex-ai`…).\n* **Google Cloud groups** — Google Cloud, organization, folder, project, region, zone, VPC network, subnet, VPC Service Controls perimeter, firewall rules, on-premises, custom product groups; numbered callouts (hover for the description); light and dark themes.\n* **Layout + routing** — nest groups, list children; rows align icon centre lines; the router avoids nodes and group headers, prefers straight lines, and warns (exit code 2 with `--strict`) when it can't find a clean route.\n* **Three diagram types** — `architecture`, `sequence` (lifelines, boundaries, fragments), `dataflow` (stage columns).\n* **Well-Architected review tab** — the Google Cloud Well-Architected Framework: 6 pillars, 37 principles, 174 recommendations; five statuses, impact × likelihood risk, Eisenhower plan, SMART goals, AI-workload findings. Advisory: it reads the *drawing*, not your configuration.\n* **Cost tab (with a price book)** — Compute Engine, GKE, Cloud Run, Cloud Run functions, Cloud Storage, BigQuery, Pub/Sub, Cloud SQL, Cloud Logging pricers; assumptions, sensitivity and what-ifs. All arithmetic is code.\n* **draw.io export** — a `.drawio` file with the official icons embedded as images (as draw.io's own `gcp2` library does) and styled group containers; fully editable.\n* **`finalize`** — validate → render → strict checks → real-browser check → PNG → deterministic `*.receipt.json`. Never claims visual quality: it records `visualReview: \"not-performed\"`.\n* **Viewer runtime** — Passport, Reach, Route probe, Finder (`/`), presentation (`p`), deep links (`#focus=orch&reach=downstream`, `#route=a~b`), export to PNG/JPEG/WebP/SVG/draw.io. See [references/viewer-runtime.md](references/viewer-runtime.md).\n* **Import** — `import mermaid` (flowchart + sequenceDiagram → Google Cloud icons, with mapping confidence) and `import iac` (Terraform `google` provider → architecture; resolves Pub/Sub subscriptions, IAM bindings, URL maps…). See [references/importers.md](references/importers.md).\n* **Schemas + routing** — `schema` (JSON Schemas for editors/agents), `guide \"<scenario>\"` (which type and template).\n\n## Commands\n```text\narchify-gcp finalize <spec.json> [--json]      archify-gcp render <spec.json> [-o out.html] [--svg] [--png] [--drawio] [--theme dark] [--no-review] [--no-cost] [--strict] [--json]\narchify-gcp validate <spec.json>              archify-gcp review <spec.json>            archify-gcp export <spec.json> --format drawio\narchify-gcp cost <spec.json> [--scale 1,3,10]  archify-gcp wa review|corpus\narchify-gcp import mermaid <file|-> | import iac <dir>       archify-gcp guide \"<scenario>\"      archify-gcp schema <type>\narchify-gcp icons search|info|categories|groups\narchify-gcp init three-tier|serverless-api|genai-rag|sequence|dataflow      archify-gcp fetch-icons | doctor\n```\nSpec format: [references/spec.md](references/spec.md) · conventions: [references/gcp-diagram-guidelines.md](references/gcp-diagram-guidelines.md) · review rules: [references/well-architected.md](references/well-architected.md) · cost: [references/cost-estimation.md](references/cost-estimation.md).\n\n```json\n{ \"meta\": { \"title\": \"Hello Google Cloud\" },\n  \"root\": { \"layout\": \"row\", \"children\": [\n    { \"id\": \"u\", \"icon\": \"users\", \"label\": \"Users\" },\n    { \"id\": \"cloud\", \"kind\": \"gcp-cloud\", \"children\": [\n      { \"id\": \"run\", \"icon\": \"cloud-run\", \"label\": \"Cloud Run\" },\n      { \"id\": \"db\", \"icon\": \"firestore\", \"label\": \"Firestore\" } ] } ] },\n  \"edges\": [ { \"from\": \"u\", \"to\": \"run\", \"step\": 1, \"label\": \"HTTPS\" }, { \"from\": \"run\", \"to\": \"db\", \"step\": 2 } ] }\n```\n\n## Documentation\nUser guide and developer guide (MkDocs): <https://akashtalole.github.io/archify-gcp/> — source in [`docs/`](docs/); build locally with\n`pip install -r requirements-docs.txt && node scripts/stage-docs.mjs && mkdocs serve`.\n\n## Notes and limits\n* **Icons are not committed.** Google distributes them under its own terms; `icons:fetch` pulls them from Google. Rendered diagrams embed the icons they use. See [THIRD_PARTY_NOTICES.md](THIRD_PARTY_NOTICES.md).\n* Google's icon set has no separate icon for some newer products (Gemini, Model Armor, Vertex AI Search…): the closest official icon is used and the product name goes in the label. Agent products (Agent Engine, Agent Builder, Gemini Enterprise) use the official **Agents** category icon (`category-agents`).\n* Google publishes no group-style deck: group colours and corner icons are a house style that follows Architecture Center conventions.\n* The Well-Architected ids (`REL-3.1`…) are derived from the page order of Google's framework (which has no official numbering); the snapshot is frozen and `wa corpus --refresh` re-derives it.\n* Not a drop-in for Archify's pipeline: this is an independent Google Cloud renderer. `finalize` is the equivalent gate here.\n* The router is heuristic. Complex diagrams may need `children` reordering; the warnings say where.\n* `npm test` runs the unit and example-render tests (needs the icons fetched).\n\nMIT licensed.\n"}