Go Helper
shepherdjerred/monorepo
Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling.
Use as the lead skill when Python tests must expose scheduler/interleaving bugs in asyncio, threading, queues, workers, databases, caches, or mixed-concurrency code
$ npx skills add dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install dzhalaevd/Donatello concurrency-fuzzing-testing --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/dzhalaevd/Donatello.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .claude/skills/concurrency-fuzzing-testing && 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 "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .claude/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testingType 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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install dzhalaevd/Donatello concurrency-fuzzing-testing --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dzhalaevd/Donatello.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .agents/skills/concurrency-fuzzing-testing && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .agents/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install dzhalaevd/Donatello concurrency-fuzzing-testing --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dzhalaevd/Donatello.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .cursor/skills/concurrency-fuzzing-testing && 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 "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .cursor/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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/dzhalaevd/Donatello.git --path .agents/skills/concurrency-fuzzing-testing--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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install dzhalaevd/Donatello concurrency-fuzzing-testing --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dzhalaevd/Donatello.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .gemini/skills/concurrency-fuzzing-testing && 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 "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .gemini/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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 dzhalaevd/Donatello concurrency-fuzzing-testingInstalls 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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/dzhalaevd/Donatello.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .github/skills/concurrency-fuzzing-testing && 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 "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .github/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install dzhalaevd/Donatello concurrency-fuzzing-testing --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/dzhalaevd/Donatello.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/concurrency-fuzzing-testing .opencode/skills/concurrency-fuzzing-testing && 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 "concurrency-fuzzing-testing" agent skill from https://github.com/dzhalaevd/Donatello/tree/main/.agents/skills/concurrency-fuzzing-testing into .opencode/skills/concurrency-fuzzing-testing/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "concurrency-fuzzing-testing", 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.
concurrency-fuzzing-testingUse as the lead skill when Python tests must expose scheduler/interleaving bugs in asyncio, threading, queues, workers, databases, caches, or mixed-concurrency code
Concurrency Fuzzing Testing is an agent skill from dzhalaevd/Donatello. Use as the lead skill when Python tests must expose scheduler/interleaving bugs in asyncio, threading, queues, workers, databases, caches, or mixed-concurrency code
Its SKILL.md is about 3.3k 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 Security, covering Fuzzing and Async programming. It works with Python. The repository describes itself as: Make Dating Great Again. An open source dating platform. The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b57816e. 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.
No URLs in SKILL.md.
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.
Concurrency Fuzzing Testing loads about 3.3k tokens when it runs. Until then it costs about 48 tokens; SKILL.md has 1,531 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 dzhalaevd/Donatello at commit b57816e, republished under its Apache-2.0 licence (© dzhalaevd). 1,531 words, ~3,284 tokens.
.claude/skills/concurrency-fuzzing-testing/SKILL.md (or your agent's skills folder).Design fuzz tests that expose:
Use this skill as the lead skill when the primary risk is concurrent interleaving, not merely the presence of async
or await.
Strong signals:
asyncio tasks, threads, workers, greenlets, or processes operate at the same time;asyncio.Queue, worker pools, background consumers, schedulers, or fan-out/fan-in flows coordinate work;read -> modify -> write sequence can overlap with another operation;Do not choose this skill just because a function is async. If the behavior can be tested by awaiting one operation with
controlled fakes and no competing operation, use unit-testing as the lead skill.
Use this skill as the lead when the core question is "can concurrent execution violate an invariant?"
Use integration-testing as a supporting skill when the race involves real databases, repositories, transactions, API
flows, or multiple application components.
Use testing-pytest as a supporting skill when implementing the final tests in pytest.
Use unit-testing instead when the target behavior can be isolated without real concurrency.
Use test-driven-development as a workflow overlay when the concurrency bug is being fixed test-first.
Concurrency fuzzing is heavier than normal unit or integration testing. Start small, then escalate only when the risk justifies it.
Before writing fuzz tests, inspect the code step by step and identify:
dict, list, object attributes, database rows, caches, globals;read -> modify -> write sequences without atomicity;await points between read and write;Lock, RLock, Semaphore, asyncio.Lock, DB locks, advisory locks;Ask concise questions if it is unclear:
If ambiguity does not block progress, state assumptions and continue.
Define invariants before choosing the fuzzer.
Useful invariant categories:
Prefer invariant assertions over one brittle exact value when the exact interleaving can vary.
Use first. It is simple and often catches obvious races.
Techniques:
asyncio.gather, threads, or process-level concurrency;Good for:
Limitations:
Use when normal repeated runs do not create enough scheduling variation.
Techniques:
Treat event loop patching as advanced and risky. Keep it isolated, documented, and out of broad test fixtures.
Use for small, high-value scenarios where stronger confidence is needed.
Model the concurrent operations as a tree of possible interleavings. Pause at interesting operations, choose the next runnable operation, mark the path visited, and repeat until all reachable paths are explored.
Good hook points:
before_execute / before_cursor_execute;Requirements:
This can provide near-guarantees for bounded scenarios, but it is too expensive for broad API surfaces.
Use Hypothesis or a similar tool when inputs or operation sequences matter.
Generate:
Assert post-conditions and invariants that must hold for every generated case.
Best when sequential behavior is well specified and concurrent behavior should be equivalent to some valid serial order.
Use as a supplement to concurrency fuzzing.
Tools may include Hypothesis, Atheris, pythonfuzz, or pydantic validation strategies.
Target:
async def test_operation_concurrent_fuzz() -> None:
seed = 12345
rng = random.Random(seed)
for iteration in range(100):
await reset_state()
trace: list[str] = []
async with fuzzing_context(rng=rng, trace=trace):
await asyncio.wait_for(
asyncio.gather(
operation_a(...),
operation_b(...),
),
timeout=1.0,
)
(
assert_invariants_hold(),
{
"seed": seed,
"iteration": iteration,
"trace": trace,
},
)Use fewer iterations in PR CI and more in nightly CI.
Use this pattern when two or more operations update the same logical value.
async def test_increment_has_no_lost_updates_under_concurrency() -> None:
seed = 7357
attempts = 200
rng = random.Random(seed)
for iteration in range(attempts):
await set_counter("foo", 0)
trace: list[str] = []
async def worker(name: str) -> None:
trace.append(f"{name}:start")
await maybe_yield(rng)
await increment("foo")
trace.append(f"{name}:done")
await asyncio.wait_for(
asyncio.gather(worker("a"), worker("b")),
timeout=1.0,
)
assert await get_counter("foo") == 2, {
"seed": seed,
"iteration": iteration,
"trace": trace,
}If this test is flaky, do not hide the flakiness. Capture the failing seed and turn it into a deterministic regression when possible.
Randomizing asyncio internals can reveal bugs, but it is fragile.
If used:
Sketch:
class RandomReadyQueue(deque[asyncio.Handle]):
def __init__(self, rng: random.Random) -> None:
super().__init__()
self._rng = rng
def popleft(self) -> asyncio.Handle:
self._rng.shuffle(self)
return super().popleft()Do not patch global scheduler behavior for unrelated tests.
For bounded exhaustive exploration:
Record:
Use this for high-risk, low-dimensional cases. Do not attempt exhaustive exploration over unbounded API/state spaces.
When the bug may involve the database:
before_execute or before_cursor_execute;Serializability-style check:
S1.op1 then op2; snapshot end state.S1.op2 then op1; snapshot end state.S1.op1 and op2 concurrently under fuzzing.For threading code:
When using Hypothesis:
Do not combine huge input spaces with huge interleaving spaces in one test. Control one dimension at a time.
Classify tests by cost:
Report the intended tier when proposing a test.
On failure, output enough to reproduce:
Do not report only "race detected"; include the shortest actionable trace available.
When designing concurrency fuzz tests:
When reviewing concurrency tests:
© dzhalaevd, Apache-2.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/concurrency-fuzzing-testing of dzhalaevd/Donatello.
Open the folder on GitHubat commit b57816e
Concurrency Fuzzing Testing 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 |
|---|---|---|---|---|---|---|
| Concurrency Fuzzing Testing this skilldzhalaevd/Donatello | 135 | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Go Helpershepherdjerred/monorepo | 112 | — | ~1.7k | Automated safety check: Pass | GPL-3.0 | |
| Directed Test Input GeneratorArabelaTso/Skills-4-SE | 253 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Simplified Python Fuzzeropensage-agent/opensage-adk | 127 | — | ~228 | Automated safety check: Pass | Apache-2.0 | |
| Testing Goericrisco/rsc-harness | 174 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Fuzzing Input GeneratorArabelaTso/Skills-4-SE | 253 | — | ~4.9k | Automated safety check: Pass | Apache-2.0 |
shepherdjerred/monorepo
Current Go development guidance for modules, toolchains, workspaces, testing, fuzzing, concurrency, profiling, security, and Go tooling.
ArabelaTso/Skills-4-SE
Generate targeted test inputs to reach specific code paths and hard-to-reach behaviors in Python code.
opensage-agent/opensage-adk
Run a Python fuzzer script (provided as a string) for a fixed duration.
ericrisco/rsc-harness
A skill your agent uses when writing or running Go tests — table-driven cases, named subtests, parallel isolation, fakes instead of mock frameworks, coverage profiles, benchmarks, fuzzing, golden…
ArabelaTso/Skills-4-SE
Generate randomized and edge-case inputs to detect unexpected failures, bugs, and security vulnerabilities through fuzz testing.
benchflow-ai/skillsbench
Creating fuzz driver for Python libraries using LibFuzzer. An agent skill from benchflow-ai/skillsbench.
dzhalaevd/Donatello
Guides stable API and interface design. An agent skill from dzhalaevd/Donatello.
dzhalaevd/Donatello
Records decisions and documentation. An agent skill from dzhalaevd/Donatello.
dzhalaevd/Donatello
Automates CI/CD pipeline setup. An agent skill from dzhalaevd/Donatello.
dzhalaevd/Donatello
Manages deprecation and migration. An agent skill from dzhalaevd/Donatello.
dzhalaevd/Donatello
Instruments code so production behavior is visible and diagnosable.
dzhalaevd/Donatello
Prepares production launches. An agent skill from dzhalaevd/Donatello.
Works with
Categories
Use as the lead skill when Python tests must expose scheduler/interleaving bugs in asyncio, threading, queues, workers, databases, caches, or mixed-concurrency code. Concurrency Fuzzing Testing is an agent skill from dzhalaevd/Donatello.
Concurrency Fuzzing Testing fits situations like: tasks that involve Fuzzing; tasks that involve Async programming.
Run `npx skills add dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a claude-code`. Or copy the skill folder (.agents/skills/concurrency-fuzzing-testing in dzhalaevd/Donatello) into .claude/skills/concurrency-fuzzing-testing in your project. Claude Code loads it when a task matches its description.
Run `npx skills add dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a codex`. Or copy the skill folder (.agents/skills/concurrency-fuzzing-testing in dzhalaevd/Donatello) into .agents/skills/concurrency-fuzzing-testing 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 dzhalaevd/Donatello --skill concurrency-fuzzing-testing -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/concurrency-fuzzing-testing, .gemini/skills/concurrency-fuzzing-testing, .github/skills/concurrency-fuzzing-testing and .opencode/skills/concurrency-fuzzing-testing in your project.
SKILL.md names no scripts, command-line tools or credentials: Concurrency Fuzzing Testing is instructions for the agent only. Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Concurrency Fuzzing Testing is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k 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 Concurrency Fuzzing Testing: Go Helper (shepherdjerred/monorepo, 112 stars), Directed Test Input Generator (ArabelaTso/Skills-4-SE, 253 stars), Simplified Python Fuzzer (opensage-agent/opensage-adk, 127 stars) and Testing Go (ericrisco/rsc-harness, 174 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
dzhalaevd (a GitHub user) maintains it in dzhalaevd/Donatello, which has 135 GitHub stars. The repository holds 15 skills in this directory. The repository was last updated on October 3, 2026.
Source: dzhalaevd/Donatello on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.