adk-style

Checks your Python code follows the right style rules for the Agent Development Kit so it works well with other code.

Installation
Run `npx skills add "https://github.com/google/adk-python" --skill "adk-style"` to install this skill, then follow its SKILL.md instructions for my next request.

Paste this into Claude Code, Cursor, or any agent that can run commands.

SKILL.mdShow the author's original SKILL.md
---
name: adk-style
description: >-
  Python style and codebase conventions for ADK (Agent Development Kit):
  private-by-default file visibility, imports, type hints, Pydantic v2 models,
  formatting, docstrings, logging, async I/O, file and test layout, and unit
  test structure. Use when writing or editing ADK source or tests, deciding
  whether a new file or symbol should be public or private, naming or placing
  a test file, fixing a formatter, linter, or type-check failure (pyink,
  isort, ruff, mypy, addlicense, compliance-checks), or asking whether code
  matches house style. Don't use for reviewing a whole changeset (use
  adk-review), writing a developer guide or design doc for a code unit (use
  adk-unit-guide or adk-unit-design), building or configuring agents (use
  adk-agent-builder), or installing the toolchain (use adk-setup).
---

# ADK Style Guide

Conventions for `src/google/adk/` and `tests/unittests/`. Most are enforced by
a pre-commit hook or a CI job, so a violation blocks the PR rather than
surfacing in review. Read the one reference for the topic you are touching.

## Pick a reference

| Task | Reference |
| --- | --- |
| Adding a `.py` file; deciding public vs private; `__init__.py` and `__all__` | [visibility.md](references/visibility.md) |
| Writing `import` lines; relative vs absolute; circular imports; `TYPE_CHECKING` | [imports.md](references/imports.md) |
| Annotating args and returns; `Optional` vs `\| None`; keyword-only args; `isinstance`; asserts; mypy | [typing.md](references/typing.md) |
| Defining a Pydantic model, validator, private attribute, or on-wire payload | [pydantic.md](references/pydantic.md) |
| Indentation, line length, quotes; running the formatter; what each hook checks | [formatting.md](references/formatting.md) |
| Writing a docstring or an explanatory comment | [documentation.md](references/documentation.md) |
| Emitting a log record; naming the module logger; picking a level | [logging.md](references/logging.md) |
| Anything that performs I/O — network, disk, database | [async.md](references/async.md) |
| Where a new file goes; license header; where its test goes and what to call it | [file-organization.md](references/file-organization.md) |
| Writing or restructuring a unit test | [testing.md](references/testing.md) |

## A check failed — where to look

| Failing check | Reference |
| --- | --- |
| `check-new-py-prefix` | [visibility.md](references/visibility.md) |
| `compliance-checks` | [logging.md](references/logging.md) (logger name), [typing.md](references/typing.md) (`from __future__ import annotations`), [imports.md](references/imports.md) (`cli/` import direction) |
| `pyink`, `isort`, `ruff`, `addlicense`, `codespell` | [formatting.md](references/formatting.md) |
| Mypy Check CI job | [typing.md](references/typing.md) |

Ships with 10 supporting files:

  • references/async.md
  • references/documentation.md
  • references/file-organization.md
  • references/formatting.md
  • references/imports.md
  • references/logging.md
  • references/pydantic.md
  • references/testing.md
  • references/typing.md
  • references/visibility.md

Mirrored from the author's public source. Install counts from the open skills registry.

The systems behind these skills get built for partners every week.

Partner with us