Skip to content

Guide · Agent skill

How to use the Make Python Recipe Deployable agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The make-python-recipe-deployable skill is an agent skill from google/adk-recipes that prepares an existing Python agent recipe to run as a web service in a container. It writes the Dockerfile, .dockerignore, FastAPI server and helper modules, then adjusts the recipe's config to match. This guide explains what the skill does, how to install it, how to ask for it in plain language, and what to check before you trust the result.

Make Python Recipe Deployablegoogle/adk-recipes · Apache-2.0

Quick start

  1. 1Download and unzip the skill. Download the ZIP from this page and unzip it. Keep the make-python-recipe-deployable folder intact.
  2. 2Place it where the agent can find it. Move the folder into ~/.claude/skills/ for personal use or into a project's .claude/skills/ folder. Alternatively, upload it in the Claude apps under Settings → Capabilities → Skills.
  3. 3Prepare your recipe. Make sure your Python recipe is in a known directory and that you have a clean copy saved for comparison.
  4. 4Ask for a deployable check. Describe the goal in plain language, such as asking the agent to make the recipe deployable.
  5. 5Review the dry run. Read the summarised plan, checks and questions. Answer any owner questions and resolve any gate that needs input.
  6. 6Approve the apply step. Confirm with a clear yes so the agent applies the changes.
  7. 7Check the container if Docker is available. Let the agent build and run the container. A recipe that fails to start will not be marked deployable.

What is an agent skill?

An agent skill is a folder containing a SKILL.md file and any scripts or templates it needs. When you install one, an AI agent such as Claude can load its instructions and follow them when your request matches the skill's description.

This skill lives in the .agents/skills/make-python-recipe-deployable folder of the google/adk-recipes repository and is licensed under Apache-2.0.

What does the skill make the agent do?

The skill generates the serving files a container needs: a Dockerfile, a .dockerignore, fast_api_app.py, app_utils/a2a.py, app_utils/services.py and app_utils/reasoning_engine_adapter.py. It then configures the recipe to match, including required serving dependencies, the App object in agent.py, the hatch wheel package and manifest.deployable.

It does not build an image, deploy a service or write terraform. Its job ends when the files are correct, and the result still needs human infrastructure work for deployment through Cloud Build and Artifact Registry.

  • Dry run first: it shows the plan and writes nothing.
  • It asks the recipe owner about runtime data directories when they are relevant.
  • If Docker is available, it can build and run the container to check that it starts.
  • It will not flag a recipe deployable if the container fails to come up.

How do you install the skill?

Download the ZIP for this skill from this page and unzip it. Then place the folder in one of these locations:

  • Personal skills: ~/.claude/skills/ so it is available across your projects.
  • Project skills: the .claude/skills/ folder inside a specific project.
  • Claude apps: upload the skill under Settings → Capabilities → Skills.

How do you trigger the skill with a natural request?

You do not need a special command. Describe what you want in plain language and the agent will load the skill when your request matches its description. The skill's trigger phrases include requests such as making a recipe deployable, adding a Dockerfile to a recipe, adding the serving files, containerizing a recipe, verifying that the container builds, or preparing a recipe for Cloud Build or Artifact Registry.

  • "Make this recipe deployable."
  • "Add a Dockerfile to this recipe."
  • "Containerize this recipe and verify the container builds."
  • "Prepare this recipe for Cloud Build and Artifact Registry."

What happens during a run?

The agent first runs the dry-run script against your recipe directory. It summarises the outcome, checks and to-do items for you rather than dumping raw output. Nothing is written at this stage.

If any check needs input, the run stops. Gates such as adk-locked-version, adk-version-floor and legacy-app-utils require a human to change code. The agent reports the message as written and does not look for a way around it.

Only after you answer the questions and say yes does the agent apply the changes. Follow-up checks are run by the agent after a successful apply.

uv run --no-project --with tomlkit --with 'ruamel.yaml' --with packaging \ python3 .agents/skills/make-python-recipe-deployable/scripts/make_deployable.py \ --recipe-dir <RECIPE_DIR>

What do you need before you start?

You need Python with uv, because the dry run runs through uv run with tomlkit, ruamel.yaml and packaging. The generated code uses google-adk with the gcp and otel-gcp extras, FastAPI, the a2a SDK and agentplatform. Docker is optional and is needed only for container verification.

The skill runs scripts and uses the network, so review what it will do before approving a run.

  • Python with uv
  • google-adk with gcp and otel-gcp extras
  • FastAPI and the a2a SDK
  • agentplatform
  • Docker (optional, for container verification)

What are the safety notes?

The skill runs Python scripts and uses the network. The dry run shows the plan before anything changes, and the skill asks for a yes before applying. Keep those checkpoints in place.

Do not let the skill overwrite an existing fast_api_app.py without explicit confirmation. Such a file is often bespoke, and overwriting it can break custom routing. The --overwrite option exists but is a deliberate choice, not a default.

The skill does not certify your agent. A generated a2a.py file does not prove the agent works over A2A.

  • Always review the dry-run plan before approving --apply.
  • Never accept a widened version bound as a silent change; the skill reports version specifiers for confirmation.
  • Treat a needs_input gate as a stop sign for a human, not a problem to route around.

What tips help the result go smoothly?

Keep your recipe in a clean state before the run so changes are easy to review. Have Docker running if you want the container to be tested rather than only checked by inspection. If the skill reports an unverified result, that usually just means nobody built the image, which is normal on machines without Docker.

  • Commit or back up the recipe before applying changes.
  • Install Docker if you want proof that the container starts.
  • If a run reports verification-inconclusive, retry it, since the environment blocked the check.
  • Expect to do terraform and deployment work yourself.

What people use it for

  • Adding a Dockerfile and serving setup to an existing Python ADK recipe before publishing it.
  • Checking that a recipe's container starts before a maintainer releases it.
  • Preparing a recipe for Cloud Build and Artifact Registry, with infrastructure work handled separately.
  • Reviewing which version specifiers and dependency extras the skill would change, before applying anything.

Frequently asked questions

Is the make-python-recipe-deployable skill free?

The skill is licensed under Apache-2.0, as stated in its metadata. Check the repository's license terms for details on use and redistribution.

What do I need to run the make-python-recipe-deployable skill?

You need Python with uv for the dry-run script, which uses tomlkit, ruamel.yaml and packaging. Docker is optional and is needed only to build and run the container for verification.

Does the skill deploy my agent to Cloud Run or Cloud Build?

No. The skill does not build images, deploy anything or write terraform. It prepares the files, and image builds happen later through Cloud Build and Artifact Registry.

What does the unverified result mean?

It means the files look correct by inspection, but nobody built the image. It is the normal result on a machine without Docker and is not a defect.

Will the skill overwrite my existing fast_api_app.py?

Not without explicit confirmation. An existing file is usually bespoke, and overwriting it can break custom routing unless you deliberately choose the overwrite option.

Does the generated a2a.py mean my agent works over A2A?

No. The file alone does not prove that the agent behaves correctly over A2A, so you need to test that separately.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

Use this skill if you maintain Python ADK recipes and want a consistent Dockerfile and serving setup, with a dry run and optional container check before you publish. Pick something else if you need the skill to deploy services or write terraform, or if your recipe has bespoke serving code you cannot risk overwriting.

Download the skill