mcpbeat

Scaffold Python Recipe

google/scaffold-python-recipe

> This skill should be used when the user wants to "create a new Python ADK sample", "scaffold a new Python sample recipe", "generate a new Python sample in contrib", "add a new Python sample to the adk-samples repository", or "create a Python adk sample". It utilizes an automated script to copy template files and resolve basic placeholders.

13k tokens
context cost
the whole folder, loaded on every use
21
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
10025
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/google/adk-samples --skill scaffold-python-recipe

What comes with it

46 686 bytes besides the instruction
resources/templates/.env.example
resources/templates/README.md
resources/templates/app/__init__.py
resources/templates/app/agent.py
resources/templates/app/app_utils/__init__.py
resources/templates/app/app_utils/telemetry.py
resources/templates/app/app_utils/typing.py
resources/templates/app/fast_api_app.py
resources/templates/manifest.yaml
resources/templates/pyproject.toml
resources/templates/tests/eval/eval_config.json
resources/templates/tests/eval/evalsets/README.md
resources/templates/tests/eval/evalsets/basic.evalset.json
resources/templates/tests/integration/test_agent.py
resources/templates/tests/integration/test_server_e2e.py
resources/templates/tests/test_runnability.py
resources/templates/tests/unit/test_tools.py
scripts/scaffold.py
tests/conftest.py
tests/test_scaffold.py

The instruction itself

7 sections, as written by the author

Scaffolding a New Python ADK Sample

Use this skill to scaffold a new Python ADK sample recipe inside this repository using the automated script at scripts/scaffold.py.


Rules

  • No Manual Boilerplate Writing: Always use scripts/scaffold.py to create the recipe. Never write the boilerplate files manually.
  • Do Not Modify After Scaffolding: Once the script runs successfully, do not make any further changes to the recipe in this turn.
  • Use the Correct Terminology (Recipe): Always refer to what is being created as a recipe, never as a "project". Ensure all output messages, instructions, and explanations to the user use "recipe" exclusively.

Inputs

You must have both pieces of information below before running the script. If either is missing or was not explicitly provided by the user, ask for it — do not assume or use a default.

1. Output Directory (Required — must ask if not provided)

The user must choose one of these valid locations:

  • contrib/python/ — community recipes; preferred for new Python recipes
  • core/python/ — curated recipes
  • contrib/ — legacy flat layout, still accepted; prefer contrib/python/

If the user has not specified which directory, ask them to choose. Do not proceed until a valid choice is confirmed.

This skill cannot scaffold a vertical skill (skills/<vertical>/<solution>/). Those have a different shape — SKILL.md, EVAL.yaml, scripts/, assets/, references/, tests/unit/ — and no template ships for them yet. If the user asks for one, tell them so rather than scaffolding into the wrong place.

2. Recipe Name (Required — must ask if not provided)

The recipe name must satisfy all of the following rules:

  • Contains only lowercase letters and hyphens (a-z, -)
  • Is 30 characters or less
  • Does not start or end with a hyphen

If the user provided a name, validate it against these rules before proceeding. If it is invalid, explain which rule it violates and ask for a corrected name. Do not proceed until a valid name is confirmed.


Run

Execute the scaffold script:

python3 .agents/skills/scaffold-python-recipe/scripts/scaffold.py --name <RECIPE_NAME> --output-dir <OUTPUT_DIRECTORY>

*The script accepts exactly two flags: --name (required) and --output-dir (required). Do not pass any other flags.*


Respond

Once the script succeeds, inform the user the recipe is ready and highlight the following required next steps:

  • Update manifest.yaml: Fill in the description, ownership.team, and ownership.poc fields (placeholders are marked with TODO:). This file is validated by CI and must not contain placeholder values. Use the generate-manifest skill if you want it populated automatically from the source code.
  • Update README.md: Replace the generic title and description with details specific to this recipe (ownership/POC live in manifest.yaml, above — not in the README).

Then, provide these quick-start commands:

cd <OUTPUT_DIRECTORY>/<RECIPE_NAME>
uv sync                  # install dependencies
uv run pytest            # run the test suite
uv run adk run app       # run the agent interactively

Do not make any further changes. End your turn.

How to use it

Copy the folder

Take google/scaffold-python-recipe from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.