
Prepare Python Recipe
End-to-end orchestration to prepare or update a Python recipe under core/python/...
Install
npx skills add google/adk-recipes --skill prepare-python-recipe -g -a claude-code -y- Repository
- google/adk-recipes10.6k
- Category
- Design
- Updated
- 4d ago
- License
- Apache-2.0
- Context cost
- Mediumabout 3,000 tokens
- Runs scripts
- Yes, review before use
What it does
End-to-end orchestration to prepare or update a Python recipe under core/python/, contrib/python/, or plugins/<vertical>/<solution>/ so it passes every check in .github/workflows/python-validate-recipe.yml. Runs eight phases in order on an already-in-place recipe: manifest.yaml generation, environment-variable extraction, pyproject.toml alignment, ruff format+check, per-recipe `uv lock`, runnability-test generation, compile-and-run verification of the generated test file, and a final pass through the repo's own `validate manifest` / `validate structure` validators. Assumes the user has already done the manual prep (deactivated any venv, `git pull` and `uv sync` from the repo root, placed the recipe at its target path, renamed if needed). Delegates to the existing sub-skills (generate-manifest, extract-python-environment-variables, align-recipe-pyproject, generate-python-runnability-test) so the master never duplicates their logic. Pauses at fixed decision points (description mismatch, existing test regeneration) AND is free to interrupt for clarification any time a phase's output looks ambiguous, unexpected, or would benefit from a human judgment call, this is an interactive skill by design. Use when the user wants to "prepare a recipe", "update a recipe end to end", "run all the checks and fixes", "make this recipe PR-ready", or invokes it by name.
Prepare Python Recipe
Master orchestration skill. Runs the other Python-recipe skills in the right order, with the right inputs, in a single pipeline. Use when the user wants a recipe brought fully up to standard in one go.
This is an interactive skill. It's expected to pause and ask questions when doing so genuinely improves the outcome, not just at the fixed checkpoints below, but any time a phase's output is ambiguous, surprising, or would benefit from a judgment call. See rule 5 (fixed checkpoints) and rule 6 (judgment-based interruptions) for the difference.
Canonical placeholder strings
Two ownership placeholders are written by generate-manifest and enforced by tools/validate_manifest.py. They must be the EXACT strings below, never invent, translate, or rephrase them:
OWNERSHIP_TEAM_PLACEHOLDER = "TODO: Replace with your team name"
OWNERSHIP_POC_PLACEHOLDER = "TODO: Replace with your GitHub user ID"
generate-manifest is the single source of truth for these values. This skill NEVER replaces them mid-pipeline, they are intentionally left in place so CI validation fails until a human fills them in. Replacing them lives in the user's post-pipeline TODO list (see the summary's "What you still need to do" section).
Prerequisites (manual, done by the user BEFORE invoking this skill)
The skill assumes the user has already:
- Deactivated any active Python virtual environment.
- Pulled latest from
origin(git pullat the repo root). - Synced repo root deps (
uv syncat the repo root). - Placed the recipe at its target path, either freshly scaffolded, moved from another location, or renamed to its final basename under
core/python/<name>/,contrib/python/<name>/, orplugins/<vertical>/<solution>/. - Committed the original recipe so
git diffshows what the skill changed.


