Skip to content

Guide · Agent skill

How to use the Align Recipe pyproject.toml agent skill

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

The align-recipe-pyproject skill is an agent skill from the google/adk-recipes repository that checks a Python sample recipe's pyproject.toml against the repo's CI rules and can fix the parts that are mechanical. This guide explains what an agent skill is, how to install this one, how to ask for it in plain language, and what it can and cannot do. By the end you will be able to run a read-only check on a recipe before submitting it.

Align Recipe pyproject.tomlgoogle/adk-recipes · Apache-2.0

Quick start

  1. 1Download and unzip the skill. Download the skill ZIP from this page and unzip it into ~/.claude/skills/ or your project's .claude/skills/ folder.
  2. 2Install the required libraries. Make sure a Python interpreter is available with the tomlkit and ruamel.yaml libraries installed.
  3. 3Ask for a dry run. Tell the agent which recipe directory to check and ask what needs changing in its pyproject.toml.
  4. 4Review the non-ok checks. Read the failing rules the agent reports, noting which are auto-fixable and which need your decision.
  5. 5Apply the fixes. Ask the agent to apply the changes once you are satisfied with the dry-run report.
  6. 6Resolve the remaining items. Handle any needs_input or report-only items yourself, such as the build backend or stale version references in README.md.

What is an agent skill, and what does this one make the agent do?

An agent skill is a folder containing a SKILL.md file and any supporting scripts. When it is installed, an AI agent that supports skills can load the instructions and run the scripts when your request matches the skill's description.

This skill targets a Python recipe's pyproject.toml, and sometimes its manifest.yaml description. It checks eight rules that the repo's CI enforces, such as removing local ruff config, making requires-python accept Python 3.11, setting the project name to match the folder, and confirming a [build-system] block exists. Some rules are fixed automatically and others are only reported, because they need a human decision.

  • Works on recipes under core/, contrib/ or plugins/ in google/adk-recipes.
  • Dry-run mode reports problems without changing any file.
  • Apply mode rewrites only the recipe's own files and tries to keep comments intact.
  • It does not migrate a recipe to a new google-adk major version; that is a code change the skill is not designed to make.

Install the align-recipe-pyproject skill

Download the skill ZIP from this page and unzip it. To make the skill available to Claude Code for all of your projects, place the unzipped folder in ~/.claude/skills/. To limit it to a single project, place it in that project's .claude/skills/ folder instead.

If you use the Claude apps, you can upload the ZIP instead. Go to Settings, then Capabilities, then Skills, and add the skill there.

  • Personal install: ~/.claude/skills/align-recipe-pyproject
  • Project install: <your-project>/.claude/skills/align-recipe-pyproject
  • Claude apps: Settings → Capabilities → Skills, then upload the ZIP.

Install the Python libraries the scripts need

The script scripts/align_pyproject.py needs a Python interpreter and two libraries: tomlkit, which edits TOML while preserving comments, and ruamel.yaml, which does the same for YAML. The source does not give a specific install command, so use whatever method your environment already uses for Python packages.

  • A Python interpreter to run scripts/align_pyproject.py.
  • The tomlkit library (comment-preserving TOML edits).
  • The ruamel.yaml library (comment-preserving YAML edits, used only when the description is synced to manifest.yaml).

How to trigger the skill with a natural request

You do not need to name a command. The skill's description lists phrases that match it, so ask the agent in plain language and give it the recipe directory. The agent will ask for the directory if you leave it out, because it is not supposed to guess.

Recipe roots live under core/python/<name>/, contrib/python/<name>/, or plugins/<vertical>/<solution>/. If you say nothing about applying changes, the agent runs a dry run first and shows you what would change.

  • "Check what needs changing in the pyproject.toml of core/python/my-recipe."
  • "Align the recipe's pyproject.toml with the repo standard before I open a PR."
  • "Fix pyproject to match the repo standard for contrib/python/my-recipe, just do it."
  • "Clean up plugins/retail/product-search before submitting."

Read and act on the report

The script checks every rule, but the agent only shows the ones that need attention. If nothing needs attention, you get a single positive line. If something does, you see only the failing checks.

Some results need your input. If description-matches-manifest returns needs_input, the agent shows the two descriptions side by side and asks you to choose one. If requires-python would still exclude Python 3.11 after the rewrite, the skill refuses to apply and returns needs_input, usually meaning you should relax a ceiling or raise the question with the maintainers about CI's pinned interpreter.

  • no-local-ruff-config and project-name-matches-folder: auto-fixed in apply mode.
  • python-version-floor: auto-rewritten when the result still accepts 3.11; otherwise needs_input.
  • build-system-present, stale-python-version-refs and runnability-test-in-testpaths: report only, fixed by a human.
  • default-pypi-index: appended when the block is missing; reported when a default index points elsewhere.

Safety notes: scripts, files and network

This skill runs a script, so review it before installing, as you would any code you run. According to the source, the skill does not use the network. It only modifies files inside the recipe directory. The workflow file, the root pyproject.toml and other recipes are not touched.

Files are rewritten only if at least one auto-fix actually ran. Otherwise the bytes on disk stay the same, so a dry run is safe to use at any time.

  • Runs scripts: yes (scripts/align_pyproject.py).
  • Uses network: no.
  • Writes only inside the recipe directory.
  • Start with a dry run and review the report before applying.
python scripts/align_pyproject.py --dry-run

Tips for getting clean results

Run the dry run before every pull request, and again after any manual edits. Keep the rules in mind: the skill is designed for this repo's conventions, including the pinned Python 3.11 floor and the required test file. Outside those conventions the rules may be wrong, so do not use it for unrelated projects.

Expect some items to stay open. Editorial decisions such as the build backend, the wording of stale version references and the testpaths setting are left to you.

  • Pass the exact recipe folder, not the repo root.
  • Check the rest of the report for report-only items after an apply run.
  • If a rule seems wrong for your recipe, ask the maintainers rather than overriding the check.

What people use it for

  • Preparing a recipe under core/ for a pull request to google/adk-recipes.
  • Getting a quick report of what a contrib/ recipe's pyproject.toml gets wrong before CI fails.
  • Checking a plugins/<vertical>/<solution> recipe that needs a unique project name.
  • Finding Python version references in README.md or setup code that are older than the 3.11 floor.

Frequently asked questions

Is the align-recipe-pyproject skill free to use?

The source gives the licence as Apache-2.0 and does not mention pricing. Check the repository's licence file for the terms of use.

What do I need to run the align-recipe-pyproject skill?

You need a Python interpreter to run scripts/align_pyproject.py, plus the tomlkit and ruamel.yaml libraries. The skill runs scripts and does not use the network.

Where do I install an agent skill like this one?

Unzip the downloaded ZIP into ~/.claude/skills/ for all projects, or into a project's .claude/skills/ folder for one project. In the Claude apps you can instead upload the ZIP under Settings, Capabilities, Skills.

Will the skill change my files without asking?

No. The agent starts with a read-only dry run unless you explicitly ask it to apply changes. Apply mode only rewrites the recipe's own pyproject.toml and, when relevant, manifest.yaml.

Can this skill migrate my recipe to a new google-adk major version?

No. The skill explicitly does not handle this, because crossing an ADK major is a code migration that metadata edits cannot safely do. The source says to port the recipe by hand in that case.

Does this work for projects outside google/adk-recipes?

Not reliably. The rules are tuned to this repo's conventions, such as the pinned Python 3.11 floor and the required tests/test_runnability.py file, so they may be wrong for other projects.

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 are preparing a Python recipe under core/, contrib/ or plugins/ in google/adk-recipes and want to catch pyproject.toml problems before CI does. Skip it if you need a google-adk major migration, or if your project does not follow this repo's conventions, since its rules would be wrong for you.

Download the skill