skills/adk-scaffold/SKILL.md
MUST READ before creating or enhancing any ADK agent project. Use when the user wants to build a new agent (e.g. "build me a search agent") or enhance an existing project (e.g. "add CI/CD to my project", "add RAG").
npx skillsauth add google/adk-docs adk-scaffoldInstall 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.
Use the agent-starter-pack CLI (via uvx) to create new ADK agent projects or enhance existing ones with deployment, CI/CD, and infrastructure scaffolding.
Start with the use case, then ask follow-ups based on answers.
Always ask:
Ask based on context:
--agent agentic_rag --datastore <choice>:
vertex_ai_vector_search — for embeddings, similarity search, vector searchvertex_ai_search — for document search, search engine--agent adk_a2a to expose the agent as an A2A-compatible service.Compose a detailed spec with these sections. Present the full spec for user approval before scaffolding.
# DESIGN_SPEC.md
## Overview
2-3 paragraphs describing the agent's purpose and how it works.
## Example Use Cases
3-5 concrete examples with expected inputs and outputs.
## Tools Required
Each tool with its purpose, API details, and authentication needs.
## Constraints & Safety Rules
Specific rules — not just generic statements.
## Success Criteria
Measurable outcomes for evaluation.
## Edge Cases to Handle
At least 3-5 scenarios the agent must handle gracefully.
The spec should be thorough enough for another developer to implement the agent without additional context.
uvx agent-starter-pack create <project-name> \
--agent <template> \
--deployment-target <target> \
--region <region> \
--prototype \
-y
Constraints:
mkdir the project directory before running create — the CLI creates it automatically. If you mkdir first, create will fail or behave unexpectedly.--agent-guidance-filename accordingly.app/, pass --agent-directory <dir> (e.g. --agent-directory agent). Getting this wrong causes enhance to miss or misplace files.| Flag | Short | Default | Description |
|------|-------|---------|-------------|
| --agent | -a | adk | Agent template (see template table below) |
| --deployment-target | -d | agent_engine | Deployment target (agent_engine, cloud_run, gke, none) |
| --region | | us-central1 | GCP region |
| --prototype | -p | off | Skip CI/CD and Terraform (recommended for first pass) |
| --cicd-runner | | skip | github_actions or google_cloud_build |
| --datastore | -ds | — | Datastore for data ingestion (vertex_ai_search, vertex_ai_vector_search) |
| --session-type | | in_memory | Session storage (in_memory, cloud_sql, agent_engine) |
| --auto-approve | -y | off | Skip confirmation prompts |
| --skip-checks | -s | off | Skip GCP/Vertex AI verification checks |
| --agent-directory | -dir | app | Agent code directory name |
| --agent-guidance-filename | | GEMINI.md | Guidance file name (CLAUDE.md, AGENTS.md) |
| --debug | | off | Enable debug logging for troubleshooting |
By default, the scaffolded project uses Google Cloud credentials (Vertex AI). For API key setup and model configuration, see Configuring Gemini models and Supported models.
uvx agent-starter-pack enhance . \
--deployment-target <target> \
-y
Run this from inside the project directory (or pass the path instead of .). Remember that enhance creates new files (.github/, deployment/, tests/load_test/, etc.) that need to be committed.
All create flags are supported, plus:
| Flag | Short | Default | Description |
|------|-------|---------|-------------|
| --name | -n | directory name | Project name for templating |
| --base-template | -bt | — | Override base template (e.g. agentic_rag to add RAG) |
| --dry-run | | off | Preview changes without applying |
| --force | | off | Force overwrite all files (skip smart-merge) |
Always ask the user before running these commands. Present the options (CI/CD runner, deployment target, etc.) and confirm before executing.
# Add deployment to an existing prototype
uvx agent-starter-pack enhance . --deployment-target agent_engine -y
# Add CI/CD pipeline (ask: GitHub Actions or Cloud Build?)
uvx agent-starter-pack enhance . --cicd-runner github_actions -y
# Add RAG with data ingestion
uvx agent-starter-pack enhance . --base-template agentic_rag --datastore vertex_ai_search -y
# Preview what would change (dry run)
uvx agent-starter-pack enhance . --deployment-target cloud_run --dry-run -y
| Template | Deployment | Description |
|----------|------------|-------------|
| adk | Agent Engine, Cloud Run, GKE | Standard ADK agent (default) |
| adk_a2a | Agent Engine, Cloud Run, GKE | Agent-to-agent coordination (A2A protocol) |
| agentic_rag | Agent Engine, Cloud Run, GKE | RAG with data ingestion pipeline |
| Target | Description |
|--------|-------------|
| agent_engine | Managed by Google (Vertex AI Agent Engine). Sessions handled automatically. |
| cloud_run | Container-based deployment. More control, requires Dockerfile. |
| gke | Container-based on GKE Autopilot. Full Kubernetes control. |
| none | No deployment scaffolding. Code only. |
Start with --prototype to skip CI/CD and Terraform. Focus on getting the agent working first, then add deployment later with enhance:
# Step 1: Create a prototype
uvx agent-starter-pack create my-agent --agent adk --prototype -y
# Step 2: Iterate on the agent code...
# Step 3: Add deployment when ready
uvx agent-starter-pack enhance . --deployment-target agent_engine -y
When using agent_engine as the deployment target, Agent Engine manages sessions internally. If your code sets a session_type, clear it — Agent Engine overrides it.
After scaffolding, save the approved spec from Step 2 to the project root as DESIGN_SPEC.md.
Then immediately load /adk-dev-guide — it contains the development workflow, coding guidelines, and operational rules you must follow when implementing the agent.
When you need specific files (Terraform, CI/CD workflows, Dockerfile) but don't want to scaffold the current project directly, create a temporary reference project in /tmp/:
uvx agent-starter-pack create /tmp/ref-project \
--agent adk \
--deployment-target cloud_run \
--cicd-runner github_actions \
-y
Inspect the generated files, adapt what you need, and copy into the actual project. Delete the reference project when done.
This is useful for:
enhance can't handlemkdir before create — the CLI creates the directory; pre-creating it causes enhance mode instead of create modeagent_engine, remove any session_type setting from your code--prototype for quick iteration — add deployment later with enhanceAgentCard schema, to_a2a() signature) is non-trivial and changes across versions. Always use --agent adk_a2a to scaffold A2A projects.Using scaffold as reference: User says: "I need a Dockerfile for my non-standard project" Actions:
uvx agent-starter-pack create /tmp/ref --agent adk --deployment-target cloud_run -yA2A project: User says: "Build me a Python agent that exposes A2A and deploys to Cloud Run" Actions:
uvx agent-starter-pack create my-a2a-agent --agent adk_a2a --deployment-target cloud_run --prototype -y
Result: Valid A2A imports and Dockerfile — no manual A2A code written.uvx command not foundInstall uv following the official installation guide.
If uv is not an option, use pip instead:
# macOS/Linux
python -m venv .venv && source .venv/bin/activate
# Windows
python -m venv .venv && .venv\Scripts\activate
pip install agent-starter-pack
agent-starter-pack create <project-name> ...
For all available options, run uvx agent-starter-pack create --help.
development
MUST READ before setting up observability for ADK agents or when analyzing production traffic, debugging agent behavior, or improving agent performance. ADK observability guide — Cloud Trace, prompt-response logging, BigQuery Agent Analytics, third-party integrations, and troubleshooting. Use when configuring monitoring, tracing, or logging for agents, or when understanding how a deployed agent handles real traffic.
tools
MUST READ before running any ADK evaluation. ADK evaluation methodology — eval metrics, evalset schema, LLM-as-judge, tool trajectory scoring, and common failure causes. Use when evaluating agent quality, running adk eval, or debugging eval results. Do NOT use for API code patterns (use adk-cheatsheet), deployment (use adk-deploy-guide), or project scaffolding (use adk-scaffold).
development
ALWAYS ACTIVE — read at the start of any ADK agent development session. ADK development lifecycle and mandatory coding guidelines — spec-driven workflow, code preservation rules, model selection, and troubleshooting.
development
MUST READ before deploying any ADK agent. ADK deployment guide — Agent Engine, Cloud Run, GKE, CI/CD pipelines, secrets, observability, and production workflows. Use when deploying agents to Google Cloud or troubleshooting deployments. Do NOT use for API code patterns (use adk-cheatsheet), evaluation (use adk-eval-guide), or project scaffolding (use adk-scaffold).