Adk Sample Creator
google/adk-python
Creates a new sample agent in the ADK Python repository — the sample directory, its agent.py, and its README.md — following the conventions the existing samples already use.
Write specification docstrings using repository conventions.
$ npx skills add ethereum/execution-specs --skill write-docstring -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ethereum/execution-specs write-docstring --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/ethereum/execution-specs.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/write-docstring .claude/skills/write-docstring && 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 "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .claude/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstringType 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 ethereum/execution-specs --skill write-docstring -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ethereum/execution-specs write-docstring --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ethereum/execution-specs.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/write-docstring .agents/skills/write-docstring && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .agents/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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 ethereum/execution-specs --skill write-docstring -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ethereum/execution-specs write-docstring --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ethereum/execution-specs.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/write-docstring .cursor/skills/write-docstring && 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 "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .cursor/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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/ethereum/execution-specs.git --path .agents/skills/write-docstring--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 ethereum/execution-specs --skill write-docstring -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ethereum/execution-specs write-docstring --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ethereum/execution-specs.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/write-docstring .gemini/skills/write-docstring && 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 "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .gemini/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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 ethereum/execution-specs write-docstringInstalls 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 ethereum/execution-specs --skill write-docstring -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ethereum/execution-specs.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/write-docstring .github/skills/write-docstring && 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 "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .github/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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 ethereum/execution-specs --skill write-docstring -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ethereum/execution-specs write-docstring --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ethereum/execution-specs.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/write-docstring .opencode/skills/write-docstring && 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 "write-docstring" agent skill from https://github.com/ethereum/execution-specs/tree/forks%2Fbogota/.agents/skills/write-docstring into .opencode/skills/write-docstring/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-docstring", 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.
write-docstringWrite specification docstrings using repository conventions.
Write Docstring is an agent skill from ethereum/execution-specs. Write specification docstrings using repository conventions.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Technical documentation. It works with Ethereum and Python. The repository describes itself as: Specification for the Execution Layer. Tracking network upgrades. The licence is CC0-1.0.
Read from SKILL.md and the folder at commit d7a84b8. 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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
en.wikipedia.orgeips.ethereum.orgdocs.python.orggithub.comFrom 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.
Write Docstring loads about 2.6k tokens when it runs. Until then it costs about 19 tokens; SKILL.md has 633 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 ethereum/execution-specs at commit d7a84b8, republished under its CC0-1.0 licence (© ethereum). 633 words, ~2,598 tokens.
.claude/skills/write-docstring/SKILL.md (or your agent's skills folder).Conventions for writing docstrings in src/ethereum/. Docstrings are the primary prose of the specification — they read as a narrative explaining how Ethereum works, not as traditional Python API documentation. They are rendered into HTML by docc, which parses them as Markdown (via mistletoe). Run this skill before writing or modifying docstrings.
.. directives::, :param:, RST section underlines)"""""" should be on its own line__init__ docstrings (D107 is disabled), only the class itself is documented# ...) can be used to explain particulars of the Python reference implementationModule docstrings introduce the concepts in the module. They should read as narrative prose — imagine a textbook chapter opening.
Start with a one-line summary, then expand with paragraphs that explain what the module contains and why. Use cross-references to link to the key types and functions defined in the module.
"""
Ethash is a proof-of-work algorithm designed to be [ASIC] resistant through
[memory hardness][mem-hard].
To achieve memory hardness, computing Ethash requires access to subsets of a
large structure. The particular subsets chosen are based on the nonce and block
header, while the set itself is changed every [`epoch`].
At a high level, the Ethash algorithm is as follows:
1. Create a **seed** value, generated with [`generate_seed`] and based on the
preceding block numbers.
1. From the seed, compute a pseudorandom **cache** with [`generate_cache`].
1. From the cache, generate a **dataset** with [`generate_dataset`]. The
dataset grows over time based on [`DATASET_EPOCH_GROWTH_SIZE`].
1. Miners hash slices of the dataset together, which is where the memory
hardness is introduced. Verification of the proof-of-work only requires the
cache to be able to recompute a much smaller subset of the full dataset.
[`DATASET_EPOCH_GROWTH_SIZE`]: ref:ethereum.ethash.DATASET_EPOCH_GROWTH_SIZE
[`generate_dataset`]: ref:ethereum.ethash.generate_dataset
[`generate_cache`]: ref:ethereum.ethash.generate_cache
[`generate_seed`]: ref:ethereum.ethash.generate_seed
[`epoch`]: ref:ethereum.ethash.epoch
[ASIC]: https://en.wikipedia.org/wiki/Application-specific_integrated_circuit
[mem-hard]: https://en.wikipedia.org/wiki/Memory-hard_function
"""Short modules that need no narrative can use a single-line summary:
"""
Utility functions used in this specification.
"""Function docstrings describe what the function does and why, as part of the specification narrative. Reference parameters inline with backticks — do not use formal Parameters, Returns, or Raises sections.
def convert(balance: str) -> U256:
"""
Convert a string in either hexadecimal or base-10 to a `U256`.
"""def add_genesis_block(
hardfork: GenesisFork, chain: Any, genesis: GenesisConfiguration
) -> None:
"""
Add the genesis block to an empty blockchain.
The genesis block is an entirely sui generis block (unique) that is not
governed by the general rules applying to all other Ethereum blocks.
Instead, the only consensus requirement is that it must be identical to
the block added by this function.
The initial state is populated with balances based on the Ethereum presale
that happened on the Bitcoin blockchain. Additional ether worth 1.98% of
the presale was given to the foundation.
The `nonce` field is `0x42` referencing Douglas Adams' "HitchHiker's Guide
to the Galaxy".
On testnets the genesis configuration usually allocates 1 wei to addresses
`0x00` to `0xFF` to avoid edge cases around precompiles being created or
cleared (by [EIP-161]).
[EIP-161]: https://eips.ethereum.org/EIPS/eip-161
"""def cache_size(block_number: Uint) -> Uint:
"""
Obtain the cache size (in bytes) of the epoch to which `block_number`
belongs.
See [`INITIAL_CACHE_SIZE`] and [`CACHE_EPOCH_GROWTH_SIZE`] for the initial
size and linear growth rate, respectively. The cache is generated in
[`generate_cache`].
The actual cache size is smaller than simply multiplying
`CACHE_EPOCH_GROWTH_SIZE` by the epoch number to minimize the risk of
unintended cyclic behavior. It is defined as the highest prime number below
what linear growth would calculate.
[`INITIAL_CACHE_SIZE`]: ref:ethereum.ethash.INITIAL_CACHE_SIZE
[`CACHE_EPOCH_GROWTH_SIZE`]: ref:ethereum.ethash.CACHE_EPOCH_GROWTH_SIZE
[`generate_cache`]: ref:ethereum.ethash.generate_cache
"""Brief summary of what the class represents, with optional narrative and cross-references.
class GenesisConfiguration:
"""
Configuration for the first block of an Ethereum chain.
Specifies the allocation of ether set out in the pre-sale, and some of
the fields of the genesis block.
"""class EvmTracer(Protocol):
"""
[`Protocol`] that describes tracer functions.
See [`ethereum.trace`] for details about tracing in general, and
[`__call__`] for more on how to implement a tracer.
[`Protocol`]: https://docs.python.org/3/library/typing.html#typing.Protocol
[`ethereum.trace`]: ref:ethereum.trace
[`__call__`]: ref:ethereum.trace.EvmTracer.__call__
"""docc documents any assignment that is followed by a bare string literal. This is non-standard Python — normally only modules, classes, and functions can have docstrings. Place a triple-quoted string immediately after the assignment.
This works for constants, class fields, module-level variables, and type aliases.
EPOCH_SIZE = Uint(30000)
"""
Number of blocks before a dataset needs to be regenerated (known as an
"epoch".) See [`epoch`].
[`epoch`]: ref:ethereum.ethash.epoch
"""class Example:
chain_id: U64
"""
Discriminant between diverged blockchains; `1` for Ethereum's main network.
"""_evm_trace: EvmTracer = discard_evm_trace
"""
Active [`EvmTracer`] that is used for generating traces.
[`EvmTracer`]: ref:ethereum.trace.EvmTracer
"""TraceEvent = (
TransactionStart
| TransactionEnd
| PrecompileStart
| PrecompileEnd
| OpStart
| OpEnd
| OpException
| EvmStop
| GasAndRefund
)
"""
All possible types of events that an [`EvmTracer`] is expected to handle.
[`EvmTracer`]: ref:ethereum.trace.EvmTracer
"""docc resolves Markdown reference links with the ref: scheme into hyperlinks in the generated documentation.
Use backtick-wrapped names as the link text, with ref: pointing to the fully-qualified path:
[`ForkCriteria`]: ref:ethereum.fork_criteria.ForkCriteria
[`generate_cache`]: ref:ethereum.ethash.generate_cacheShort aliases work when the full name is unwieldy:
[ds]: ref:ethereum.ethash.DATASET_EPOCH_GROWTH_SIZEStandard Markdown reference links:
[ASIC]: https://en.wikipedia.org/wiki/Application-specific_integrated_circuit
[EIP-3155]: https://eips.ethereum.org/EIPS/eip-3155Bare URLs in angle brackets for inline use:
Available at <https://github.com/ethereum/genesis_block_generator>.If a URL is too long to include because of the line length limit, you can add # noqa: E501 after the trailing """ to squelch the warning (but this should be a last resort).
Reference links are used inline with brackets:
For these intentional forks to succeed, all participants need to agree on
exactly when to switch rules. The agreed upon criteria are represented by
subclasses of [`ForkCriteria`], like [`ByBlockNumber`] and [`ByTimestamp`]._italic_ to introduce domain terms: _Genesis_ is the term for...**bold** to highlight key concepts: Create a **seed** value`block_number`, `0x42`1.) for sequential steps-) for unordered items.. contents::, .. note::, :param:, :returns: — these are outdatedParameters\n---------- or Args: blocksIntroduction\n------------ is RST, not Markdown"""Ethereum Specification.""" with a .. contents:: block — write real narrative or a concise summaryFor examples of well-written docstrings, see:
src/ethereum/ethash.py — narrative module + function docstringssrc/ethereum/genesis.py — class, attribute, and multi-paragraph function docstringssrc/ethereum/trace.py — class, attribute, and protocol docstringssrc/ethereum/fork_criteria.py — narrative module docstring with Markdown formattingIf these files no longer exist or are no longer good examples, abort with an appropriate error message.
© ethereum, CC0-1.0. 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 .agents/skills/write-docstring of ethereum/execution-specs.
Open the folder on GitHubat commit d7a84b8
Write Docstring 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 |
|---|---|---|---|---|---|---|
| Write Docstring this skillethereum/execution-specs | 1.2k | — | ~2.6k | Automated safety check: Pass | CC0-1.0 | |
| Adk Sample Creatorgoogle/adk-python | 22k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Crafting Effective Readmescumbucadev/cinemaempoa | 146 | 5 repos | ~669 | Automated safety check: Pass | GPL-3.0 | |
| Acquire Codebase Knowledgegithub/awesome-copilot | 40k | 1 repos | ~2.3k | Automated safety check: Pass | MIT | |
| Docs Conventionsflet-dev/flet | 17k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| DDNS Provider DevelopmentNewFuture/DDNS | 4.7k | — | ~558 | Automated safety check: Pass | MIT |
google/adk-python
Creates a new sample agent in the ADK Python repository — the sample directory, its agent.py, and its README.md — following the conventions the existing samples already use.
cumbucadev/cinemaempoa
A skill your agent uses when writing or improving README files.
github/awesome-copilot
Maps an unfamiliar codebase into seven evidence-backed documents in docs/codebase/, using a scan script and templates, for onboarding or architecture write-ups.
flet-dev/flet
A skill your agent uses when writing or reviewing Flet documentation, including Python docstrings (Google style, reST roles, admonitions), Markdown docs (cross-references, images, code examples)…
NewFuture/DDNS
Adds or changes a DNS provider in the DDNS project while keeping its code, schemas, tests and Chinese and English docs consistent.
jeka-dev/jeka
MkDocs documentation project reference covering CLI commands, mkdocs.yml configuration, Material theme setup, and plugin integration.
ethereum/execution-specs
Run locally filled fixtures against execution clients with a selected Hive simulator and a network client configuration from hive-tests.
ethereum/execution-specs
Track EIP test coverage with the repository checklist system.
ethereum/execution-specs
Fill test fixtures with the repository fill command. An agent skill from ethereum/execution-specs.
ethereum/execution-specs
Audit grammar in documentation and code comments. An agent skill from ethereum/execution-specs.
ethereum/execution-specs
Implement EIP specification changes using repository conventions.
ethereum/execution-specs
Write and run isolated pytester-based plugin tests. An agent skill from ethereum/execution-specs.
Categories
Write specification docstrings using repository conventions. Write Docstring is an agent skill from ethereum/execution-specs. Write specification docstrings using repository conventions.
Write Docstring fits situations like: tasks that involve Technical documentation.
Run `npx skills add ethereum/execution-specs --skill write-docstring -a claude-code`. Or copy the skill folder (.agents/skills/write-docstring in ethereum/execution-specs) into .claude/skills/write-docstring in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ethereum/execution-specs --skill write-docstring -a codex`. Or copy the skill folder (.agents/skills/write-docstring in ethereum/execution-specs) into .agents/skills/write-docstring 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 ethereum/execution-specs --skill write-docstring -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/write-docstring, .gemini/skills/write-docstring, .github/skills/write-docstring and .opencode/skills/write-docstring in your project.
SKILL.md names no scripts, command-line tools or credentials: Write Docstring is instructions for the agent only. Our summary lists: Python 3.
SKILL.md names 4 domains. In commands or code: en.wikipedia.org, eips.ethereum.org, docs.python.org and github.com; the agent is likely to contact these when it follows the instructions. 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.
Write Docstring is published under the CC0-1.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 10k 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 Write Docstring: Adk Sample Creator (google/adk-python, 22k stars), Crafting Effective Readmes (cumbucadev/cinemaempoa, 146 stars), Acquire Codebase Knowledge (github/awesome-copilot, 40k stars) and Docs Conventions (flet-dev/flet, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ethereum (a GitHub organization) maintains it in ethereum/execution-specs, which has 1,195 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 7, 2026.
Source: ethereum/execution-specs on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.