skills/custom-apps/migrate-googleai/SKILL.md
Convert Google AI Studio-origin apps to static Domo deployment contract.
npx skillsauth add stahura/domo-ai-vibe-rules migrate-googleaiInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
You are converting a project that began in Google AI Studio (often Cloud Run / preview oriented) into a Domo App Platform Custom App deployed as static assets via the Domo CLI. The required deployment contract is:
npm run build must produce a self-contained dist/ foldercd dist && domo publish must work (Domo serves the app from a subpath, not from site root)Treat the project as "AI Studio-origin" if you see any of:
process.env.GEMINI_API_KEY or placeholders described as "provided by AI Studio"If detected, apply the steps below.
Make the project a conventional front-end that:
npm run devnpm run build into dist/Open package.json and ensure scripts exist and are correct for the chosen toolchain:
If it is Vite:
dev: vitebuild: vite buildpreview: vite previewdist/If it is CRA:
build outputs build/ by default (NOT acceptable for our contract)Default to Vite if uncertain.
Acceptance criteria:
npm install succeedsnpm run build creates dist/ with index.html and assets/*Domo App Platform does NOT host your app at /. It’s under a nested path.
Therefore asset paths MUST be relative or explicitly configured.
If Vite: set base to relative
vite.config.*: base: './'If other bundler: ensure the equivalent "public path" is relative.
Acceptance criteria:
dist/index.html from a nested path still loads JS/CSS assets (no 404s)./assets/... unless you know the host root.If the app uses React Router (or any client router):
Default action:
HashRouter.Acceptance criteria:
AI Studio can "magically" provide placeholders (e.g., Gemini API key) during its hosted run. In Domo App Platform, the browser cannot safely hold secrets.
Rules:
process.env.* patterns with toolchain-native env usage:
import.meta.env.VITE_*.env.example documenting required variables (non-secret only).Acceptance criteria:
Ensure the final developer workflow is:
npm run buildcd distdomo publishIf a Domo manifest/config file is required by the App Platform project (e.g., manifest.json), ensure it is located where Domo expects it OR copied into dist/ during build.
If the platform expects the manifest in the root but publishes dist/, implement one of:
dist/ as part of build (postbuild script)Default:
postbuild script to copy required app platform files into dist/ if they are missing there.Acceptance criteria:
dist/ contains everything needed to publish and run.domo publish from inside dist/ works without manual file copying.After applying changes, provide:
dist/Be decisive; implement changes rather than asking follow-up questions unless blocked by missing files.
tools
Step-by-step orchestrator for building Domo App Studio apps with native KPI cards via community-domo-cli. Sequences app creation, pages, theme, hero metrics, native charts, filter cards, layout assembly, and navigation. CLI-first — no raw API calls.
tools
Create, update, and execute Magic ETL dataflows programmatically via API and CLI. Covers DAG-based JSON dataflow definitions, input/transform/output node wiring, join operations, and execution lifecycle.
tools
Magic ETL dataflows via community-domo-cli — list, get-definition, create, update, run, execution status; JSON DAG actions, transforms, joins. Use when automating dataflows with the community Domo CLI end-to-end. For REST/Java-CLI–first flows or mixed API patterns, use magic-etl instead.
development
Clean, professional dashboard theme for Domo custom apps. CSS custom properties, layout patterns, typography, and design polish that feel native to the Domo platform. Includes OKLCH color palette, layered shadows, concentric border radius, tabular numbers, and micro-interaction patterns.