Adk Setup
google/adk-python
Sets up a local ADK Python development environment in a git clone of the open-source adk-python repository: a uv virtual environment, all dependency extras, pre-commit hooks, and a first unit-test…
Guides safe code changes by finding the right file with grep or semantic search, reading before editing, reproducing bugs first, and proving a fix with a real test run.
$ npx skills add amd/gaia --skill coding -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install amd/gaia coding --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hub/skills/coding .claude/skills/coding && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .claude/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/amd/gaia/tree/main/hub/skills/codingType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add amd/gaia --skill coding -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install amd/gaia coding --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .agents/skills && cp -r skills-src/hub/skills/coding .agents/skills/coding && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .agents/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add amd/gaia --skill coding -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install amd/gaia coding --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/hub/skills/coding .cursor/skills/coding && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .cursor/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/amd/gaia.git --path hub/skills/coding--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add amd/gaia --skill coding -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install amd/gaia coding --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/hub/skills/coding .gemini/skills/coding && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .gemini/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install amd/gaia codingInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add amd/gaia --skill coding -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .github/skills && cp -r skills-src/hub/skills/coding .github/skills/coding && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .github/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add amd/gaia --skill coding -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install amd/gaia coding --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/amd/gaia.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/hub/skills/coding .opencode/skills/coding && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "coding" agent skill from https://github.com/amd/gaia/tree/main/hub/skills/coding into .opencode/skills/coding/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "coding", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
codingGuides safe code changes by finding the right file with grep or semantic search, reading before editing, reproducing bugs first, and proving a fix with a real test run.
The skill treats changing code as riskier than answering a question, since a wrong edit can look plausible for hours. It splits search into two tools: search_file_content for an exact token like a function name or error message, and search_code_index, a semantic search run after index_codebase once per repository, for when the behavior is known but not its name.
Before any edit it insists on reading the part of the file being changed, plus enough surrounding code to see what depends on it, warning that editing from memory of a similar file is how a special case quietly disappears. If edit_file's exact string replacement fails, the rule is to re-read the file rather than guess again, and never to fall back to rewriting the whole file, which silently reverts unrelated parts and rewrites every line ending.
Bugs are reproduced and the real output read before any change, so there is a clear before state to compare against. Fixes are only considered proven once pytest or python -m pytest actually runs against the suite; tracing logic mentally is treated as the same reasoning that produced the bug in the first place, not as verification.
Read from SKILL.md and the folder at commit 6c3bb5c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythongitpytestpython3makeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Verified Coding Workflow loads about 2.1k tokens when it runs. Until then it costs about 75 tokens; SKILL.md has 1,252 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from amd/gaia at commit 6c3bb5c, republished under its MIT licence (© amd). 1,252 words, ~2,147 tokens.
.claude/skills/coding/SKILL.md (or your agent's skills folder).Changing code is different from answering a question: you can be confidently wrong for hours because the answer looked plausible. Everything below exists to close that gap.
You have two searches and they answer different questions:
search_file_content — grep. Use it when you know the string: a function
name, an error message, a config key. Fastest way to find every call site.search_code_index — semantic. Use it when you know the behaviour but
not the name: "where do we decide which model to load". Run index_codebase
once for the repo first; get_index_status says whether it is ready.Grep first when you have an exact token — it is instant and exhaustive. Reach for the semantic index when grep returns nothing useful because you are guessing at names.
Not the top of it — use read_file on the part you are changing, plus enough
around it to see what else depends on it. An edit written from memory of a
similar file is how you delete someone's special case.
edit_file replaces an exact string. If it fails, the file is not what you
thought: re-read it, do not retry with a guess. Never fall back to
rewriting the whole file to get past a failed edit — that silently reverts
anything else in it and rewrites every line's endings, turning a two-line change
into a whole-file diff.
Run the failing thing and read the actual output before changing anything. A bug you have not reproduced is a bug you are guessing at, and the fix for a guess usually lands somewhere real code was fine.
This also gives you the before state. Without it you cannot tell whether you fixed the problem or merely changed the symptom.
A test you did not run is not a test that passed. Tracing the logic in your head is not verification — it is the same reasoning that produced the bug.
This skill grants pytest and python when they are installed on PATH, so
run the suite directly with run_shell_command. Prefer the python -m spelling
— it puts the project's own directory on sys.path, so it works on a checkout
that was never installed, where bare pytest fails to import the project:
python -m pytest -q tests/
python -m pytest -x -k discount tests/test_cart.py
pytest -q tests/ # same grant, same rules; for an installed project
python util/lint.py --all --fix # or whatever the project's own runner ispython -m adds the current directory to the import path, not src/. For a
project whose package lives under src/, scope the path to that one command:
PYTHONPATH=src python -m pytest -q tests/Where only python3 exists, python3 -m pytest works the same way.
pytest often lives only in the project's virtualenv, so it is not on PATH. The
skill still loads, but without the pytest grant — and python -m pytest is
judged as pytest, so that spelling is refused too. Run the suite with
execute_python_file instead, which works wherever pytest is importable:
import sys, pytest
sys.exit(pytest.main(["-q", "tests/"]))Loading this skill grants pytest and python <script.py> execution without
another prompt. Tests and scripts are trusted project code: they can write
files, access the network, and launch other programs, including commands the
direct CLI policy refuses. These grants do not sandbox their effects. The
separate execute_python_file tool still requires per-call approval.
python -c "..." is refused because the grant requires a reviewable file in the
checkout. Write new code to a file first so the diff shows it, and review what
it does before executing it. For a one-off calculation that should not land in
the repository at all, run_python takes the snippet through the tool path
instead — it asks for approval on every call rather than riding this grant.
The rest of the grant is narrow on purpose. --pdb would hang waiting for a
debugger nobody can answer, -p <plugin> imports arbitrary code, --junitxml
writes outside the run. python -m pytest --pdb is refused for exactly the same
reason pytest --pdb is — -m is not a way around a rule.
For a suite pytest cannot drive — npm, go, cargo, make — you have no grant by
default. GAIA ships policies for npm, go, uv, pip, black, isort and
ruff, so a project skill can declare the one it needs (shell:execute:npm)
and get the same three-tier treatment. make has no policy and will not get
one: its argument is a target in a file, so "run make test" means "run
whatever the Makefile says", which no approval prompt can honestly describe.
If you could not run something, say so plainly — "I could not execute the suite, so this is unverified" — rather than implying it passed.
Run the WHOLE suite, not just the test you were asked about. A fix that repairs one test and breaks two is a worse state than you started in, and you will not notice if you only look at the one.
If something else fails, that is now your problem, whether or not you caused it. Say which of the two it is.
You have git. Reads — status, diff, log, show, branch — run straight
through, and you should use them constantly: git diff before you report a
change is the cheapest possible check that the diff is only what you meant.
add, commit, checkout, switch, restore and stash each stop and show
the user the exact command before running. That is not a formality to click
past — write the commit message as if it is the only thing the reviewer reads,
because for a squashed PR it is.
The direct Git policy refuses push, reset --hard, clean, rebase,
commit --amend, git config. Publishing and history-rewriting are the user's
to run, and destroying uncommitted work has no undo anywhere. When the work is
committed and wants pushing, say so and stop — "committed on fix/discount;
run git push -u origin fix/discount and I will open the PR" — rather than
looking for a spelling that gets through.
The same mistake is rarely alone. A bad subprocess call, a missing encoding, a
wrong default — grep for the pattern once you understand it, and say what you
found even if you only fixed one. "Fixed here; three more in X, Y, Z" is far
more useful than a silent single fix.
Runner scripts and scratch output go in the system temp directory — write them
there and run them with execute_python_file, which does not care where the
file lives. python does: its grant stops at the checkout, so a scratch script
outside it is execute_python_file's job, not the shell's.
Writing create_doc.py and temp/ into the root of someone's repository leaves
them in the next git status, and they did not ask for them.
Lead with whether it works, then what changed:
Both failing tests pass now, and the other six still do.
apply_discountwas subtractingamount * percentinstead ofamount * percent / 100.format_moneyusedstr(round(...)), which drops the trailing zero in$5.50.
Name the file and line only when the reader needs it to act. Never claim a test run you did not do.
© amd, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in hub/skills/coding of amd/gaia.
Open the folder on GitHubat commit 6c3bb5c
Verified Coding Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Verified Coding Workflow this skillamd/gaia | 1.6k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Adk Setupgoogle/adk-python | 22k | — | ~993 | Automated safety check: Notes | Apache-2.0 | |
| Flowfile Debugging PlaybookEdwardvaneechoud/Flowfile | 370 | — | ~6.3k | Automated safety check: Pass | MIT | |
| Error Explanation GeneratorArabelaTso/Skills-4-SE | 253 | — | ~3.8k | Automated safety check: Pass | Apache-2.0 | |
| Kedro Babysitkedro-org/kedro | 11k | — | ~4k | Automated safety check: Pass | Custom licence | |
| Python Project Creatorhaddock-development/claude-reflect-system | 379 | — | ~1.4k | Automated safety check: Notes | None |
google/adk-python
Sets up a local ADK Python development environment in a git clone of the open-source adk-python repository: a uv virtual environment, all dependency extras, pre-commit hooks, and a first unit-test…
Edwardvaneechoud/Flowfile
Symptom-to-cause triage playbook for Flowfile (core/worker/kernel/frontend/AI) — covers "no such table" DB cascades (two distinct causes), import-time Alembic migration corruption, silent…
ArabelaTso/Skills-4-SE
Explains test failures and provides actionable debugging guidance.
kedro-org/kedro
Run Kedro's local lint / format / type-check / tests on changed files (uses the project's pre-commit hooks, ruff, mypy, pytest, lint-imports, detect-secrets, Make targets — in the right venv), or…
haddock-development/claude-reflect-system
Creates Python projects with proper structure, virtual environments, and dependency management.
SpillwaveSolutions/agent-brain
Modern Python coaching covering language foundations through advanced production patterns.
amd/gaia
Adds a release eval scorecard to a GAIA hub agent by writing a harness adapter, running a real eval, and wiring the result into the agent's README and release gate.
amd/gaia
Walks through releasing a GAIA sidecar agent as a frozen binary plus npm client through the tag-triggered Agent Hub CI pipeline, with a human gate before publishing.
amd/gaia
Mines local Claude Code session transcripts with a deterministic Python pipeline to show what the agent is actually used for, how often it fails and what it costs.
amd/gaia
Benchmarks AMD's GAIA agent against Claude Code and across models on quality, honesty, steps, tokens, time and real cost, using gaia eval tasks.
amd/gaia
Walks through scaffolding, writing and testing a new GAIA agent as a Python class with the SDK, from the base Agent subclass to registered tool methods.
amd/gaia
Turns a source document such as a README or spec into an executive slide deck as one self-contained HTML file that prints to PDF, one slide per page.
Categories
Guides safe code changes by finding the right file with grep or semantic search, reading before editing, reproducing bugs first, and proving a fix with a real test run. The skill treats changing code as riskier than answering a question, since a wrong edit can look plausible for hours. It splits search into two tools: search_file_content for an exact token like a function name or error message, and search_code_index, a semantic search run after index_codebase once per repository, for when the behavior is known but not its name.
Verified Coding Workflow fits situations like: fixing a bug in an unfamiliar codebase without reproducing it blindly; making a focused edit that must not silently change unrelated code; proving a test passes before reporting that a fix works.
Run `npx skills add amd/gaia --skill coding -a claude-code`. Or copy the skill folder (hub/skills/coding in amd/gaia) into .claude/skills/coding in your project. Claude Code loads it when a task matches its description.
Run `npx skills add amd/gaia --skill coding -a codex`. Or copy the skill folder (hub/skills/coding in amd/gaia) into .agents/skills/coding in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add amd/gaia --skill coding -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/coding, .gemini/skills/coding, .github/skills/coding and .opencode/skills/coding in your project.
Going by SKILL.md and its folder, Verified Coding Workflow needs the command-line tools its instructions call (python, git, pytest, python3 and make). Our summary lists: pytest and python on PATH, for running tests.
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Verified Coding Workflow is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Verified Coding Workflow: Adk Setup (google/adk-python, 22k stars), Flowfile Debugging Playbook (Edwardvaneechoud/Flowfile, 370 stars), Error Explanation Generator (ArabelaTso/Skills-4-SE, 253 stars) and Kedro Babysit (kedro-org/kedro, 11k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
amd (a GitHub organization) maintains it in amd/gaia, which has 1,580 GitHub stars. The repository holds 44 skills in this directory. The repository was last updated on October 6, 2026.
Source: amd/gaia on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.