OpenROAD Bug Fixer
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
Write scenario-driven tests for an OpenFoot Manager feature, bug fix or story, or characterize weakly covered behaviour before a refactor.
$ npx skills add openfootmanager/openfootmanager --skill write-tests -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install openfootmanager/openfootmanager write-tests --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/openfootmanager/openfootmanager.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/write-tests .claude/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .claude/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-testsType 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 openfootmanager/openfootmanager --skill write-tests -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install openfootmanager/openfootmanager write-tests --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/write-tests .agents/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .agents/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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 openfootmanager/openfootmanager --skill write-tests -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install openfootmanager/openfootmanager write-tests --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/write-tests .cursor/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .cursor/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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/openfootmanager/openfootmanager.git --path .claude/skills/write-tests--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 openfootmanager/openfootmanager --skill write-tests -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install openfootmanager/openfootmanager write-tests --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/write-tests .gemini/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .gemini/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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 openfootmanager/openfootmanager write-testsInstalls 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 openfootmanager/openfootmanager --skill write-tests -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/write-tests .github/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .github/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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 openfootmanager/openfootmanager --skill write-tests -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install openfootmanager/openfootmanager write-tests --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/openfootmanager/openfootmanager.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/write-tests .opencode/skills/write-tests && 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-tests" agent skill from https://github.com/openfootmanager/openfootmanager/tree/develop/.claude/skills/write-tests into .opencode/skills/write-tests/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "write-tests", 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-testsWrite scenario-driven tests for an OpenFoot Manager feature, bug fix or story, or characterize weakly covered behaviour before a refactor.
Write Tests is an agent skill from openfootmanager/openfootmanager. Write scenario-driven tests for an OpenFoot Manager feature, bug fix or story, or characterize weakly covered behaviour before a refactor. Verify named red and green runs, fixture discrimination, state/persistence seams and regression effectiveness in a disposable copy.
Its SKILL.md is about 2.2k 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 Test generation, Debugging and Agent memory. It works with Rust. The repository describes itself as: An open source soccer/football manager game. The licence is GPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit a87841b. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadEditWriteGrepGlobBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitcargonpmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
github.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 Tests loads about 2.2k tokens when it runs. Until then it costs about 71 tokens; SKILL.md has 941 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 noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, Edit, Write, Grep, Glob, BashAutomated 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 openfootmanager/openfootmanager at commit a87841b, republished under its GPL-3.0 licence (© openfootmanager). 941 words, ~2,178 tokens.
.claude/skills/write-tests/SKILL.md (or your agent's skills folder).<!-- Adapted for OFM from obra/superpowers test-driven-development (MIT), revision
8ca22dba9a94f28898bbce59f2537ff4d87c747d:
https://github.com/obra/superpowers/blob/8ca22dba9a94f28898bbce59f2537ff4d87c747d/skills/test-driven-development/SKILL.md
Copyright (c) 2025 Jesse Vincent; and po4yka/rust-skills rust-tdd (BSD-3-Clause), revision
9f4a3a4c904c1cbc507991b65397195ff724fa70:
https://github.com/po4yka/rust-skills/blob/9f4a3a4c904c1cbc507991b65397195ff724fa70/skills/rust-tdd/SKILL.md
Copyright (c) 2026 Nikita Pochaev. Full notices: ../../THIRD_PARTY_NOTICES.md.
GWT naming, OFM fixtures and persistence seam guidance are project-specific adaptations. -->
Read the root Code quality rules and nearby tests first. Search canonical builders in ofm_core
and use src/test-setup.ts on the frontend. Do not replace the project's runtime or install a
whole testing framework. Tests pin the caller-visible contract; they do not mirror the implementation.
Write a named Given/When/Then table and carry it into the PR body:
| Scenario | Given | When | Then | Layer / test name | Predicted failure |
|---|
Cover happy, edge, failure/abuse, user and AI routes for shared rules, and save/load. Mark routes inapplicable with a reason. When no written scenarios exist, state those for the touched routes before coding. Every applicable scenario gets one independently reported test; parameterize cases with the same outcome, split different outcomes. Preserve scope and discuss unclear acceptance criteria rather than inventing a larger story.
Use a plain sentence test name plus a Given/When/Then doc comment naming the scenario. Rust
sentence names use snake_case in a same-file #[cfg(test)] module; frontend tests use a sentence
in it(...) in co-located *.test.ts(x) files. For example:
/// Given a non-default budget, when the club is saved and reloaded, then the budget is preserved.
#[test]
fn a_saved_budget_survives_reload() { /* scenario assertions */ }/** Given a rejected save, when the player submits, then the form shows the error. */
it("shows the error when saving fails", () => { /* scenario assertions */ });Existing cross-crate tests belong at the owning integration layer. Command tests are in the root lib target.
Use the smallest world containing the interaction, with real existing builders and seeded RNG. If generation/distribution is the behaviour, use the real generator rather than a hand-built population. Distinguish competing worlds: two competitions on one matchday, different wage units, non-default persisted values, a positive control for a negative assertion, and nonempty inputs before assertion loops. Expected values come from literals or an independent oracle, not the code under test. Preserve intentional engine mirrors and independent test computations.
Choose the cheapest layer that observes the claimed behaviour. Pure rules use unit tests; wiring
uses the component/service or shared &StateManager seam. Read live state after mutations, not a
returned clone alone. Persistence uses the real writer and a fresh DB connection/reader, with
non-default values and absent-field old-save fixtures. Failure scenarios assert no partial mutation.
Frontend mocks retain the side effects the scenario needs. A controlled host feeds changed values
back into props; a bare onChange={vi.fn()} proves only notification. Keep real hook behaviour for
hook-order regressions (a hook-free i18n mock hides them). Prefer role/name or label queries; cover
keyboard and focus. Service failure tests verify usable UI/error outcomes, not only a mock call.
Write the scenario test before production code. Name the predicted failed assertion and value, then run only that test and confirm its name and count appear:
cargo test --locked --manifest-path src-tauri/Cargo.toml -p <crate> '<scenario>' -- --exact '<module>::tests::<scenario>'
cargo test --locked --manifest-path src-tauri/Cargo.toml --lib '<scenario>'
# Add --features mcp to the lib command for an MCP scenario.
npm ci
npm test -- <co-located-test-file> -t '<scenario>'These are templates: fill in a real target and use its full Rust path for --exact.
| Observed result | Next action |
|---|---|
| Predicted assertion fails | Record test count and failure line; implement the minimum fix |
| Passes unexpectedly | Check existing behaviour and fixture; make correct and broken outcomes differ, without weakening the assertion |
| Zero tests | Repair the selection; it proves nothing |
| Wrong assertion/setup panic | Repair setup or understanding, then rerun |
| Compile-invalid | Add only the necessary API/stub so the test can reach its behavioural assertion; rerun |
| Timeout/tool failure | Resolve or report the execution limit; do not call it RED |
A pure refactor's characterization tests may pass initially: name that evidence characterization, not a fabricated red run. Do not delete prior work to restart TDD, commit stubs or change unrelated code.
Implement the smallest production change, rerun the same scenario, then related tests. Keep each scenario test with the implementation it drove. Do not skip, weaken or bless away an unexplained failure.
Before the PR, use either a small relevant Rust mutation run or manual fix removal. Run experiments in a disposable directory only. For a committed revision:
git clone --no-hardlinks --no-checkout . /tmp/ofm-test-proof-<unique-id>
git -C /tmp/ofm-test-proof-<unique-id> checkout --detach <reviewed-sha>For uncommitted work, make a separate filesystem copy of the exact source under review, excluding
.git, node_modules, target and outputs, then copy necessary untracked tests explicitly. Inspect
the source-copy diff, install dependencies there and record the snapshot identity. Never git stash,
git checkout, git restore or reverse-patch the caller's worktree. Do not run deletion commands on
an existing directory whose provenance you have not verified.
In the copy, run the named test green, remove only the production fix while retaining the test and unrelated setup, inspect the removal diff, run the same command, quote its behavioural failure, then restore the copied production file and run green again. A wholesale checkout of the base also removes the test and is not proof. If the removal breaks compilation, report compile-invalid and repair the experiment without changing the caller's files.
For Rust mutation testing, create a production diff for the reviewed revision and, after checking
installed cargo mutants --help, run in the copy:
cargo mutants --manifest-path src-tauri/Cargo.toml --in-diff <production-diff-file>Record selection, killed/survived/timeout/compile-invalid statuses and tool exit code separately.
Empty selection is unproved; survivors need a discriminating scenario. Prefer manual fix removal
when mutation tooling is unavailable. Never describe a narrow slice as project mutation coverage.
Ask ofm-test-reviewer to inspect the evidence and unproved scenarios.
Use bounded proptest generators for pairing uniqueness, money conservation, conversion round-trips
or lineup permutations where a small pure input suffices. Avoid full-Game properties or adding a
dependency for an example test. If proptest is absent, add it as a dev-dependency only with the
first real property test in the authorized implementation change. A shrunk failure becomes a named
GWT example with a literal input; do not commit a shared failure file or let RNG make it flaky.
Run /preflight, including default and MCP tests where applicable.
In the PR give scenario -> test -> observed red/fix-removal -> green command, selected counts,
canonical rule owner/layer, reviewer result and every unrun check. No runtime behaviour changed in
a prose-only task: use artifact validation and disclose that runtime RED does not apply.
© openfootmanager, GPL-3.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 .claude/skills/write-tests of openfootmanager/openfootmanager.
Open the folder on GitHubat commit a87841b
Write Tests 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 Tests this skillopenfootmanager/openfootmanager | 1.1k | — | ~2.2k | Automated safety check: Notes | GPL-3.0 | |
| OpenROAD Bug FixerThe-OpenROAD-Project/OpenROAD | 3.2k | — | ~784 | Automated safety check: Pass | BSD-3-Clause | |
| Alefxberg-io/alef | 100 | — | ~1.7k | Automated safety check: Pass | MIT | |
| State Snapshot InstrumenterArabelaTso/Skills-4-SE | 253 | — | ~2.2k | Automated safety check: Pass | Apache-2.0 | |
| Feature ContractFastLED/FastLED | 7.5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Code Repair Generation ComboArabelaTso/Skills-4-SE | 253 | — | ~1.3k | Automated safety check: Pass | Apache-2.0 |
The-OpenROAD-Project/OpenROAD
Fixes an OpenROAD bug from a GitHub issue or error code: finds the root cause, implements the fix, adds a regression test and prepares a signed-off commit.
xberg-io/alef
Use Alef correctly for Rust-to-polyglot binding generation. An agent skill from xberg-io/alef.
ArabelaTso/Skills-4-SE
Instrument programs (Python, C/C++, Java) to capture snapshots of key program states at runtime, including variables, memory, and call stacks.
FastLED/FastLED
Generate a structured implementation contract before making any code changes to FastLED.
ArabelaTso/Skills-4-SE
Automatically repair buggy code and generate comprehensive tests for Python, Java, and C++ programs.
AprilNEA/OpenLogi
Decides whether an OpenLogi device problem on macOS is a privacy-permission (TCC) problem, using agent log lines, and says which identity needs which grant.
openfootmanager/openfootmanager
Add or change any text a player can see, in every locale the game ships in.
openfootmanager/openfootmanager
Add a field to a domain type so it survives save/load. An agent skill from openfootmanager/openfootmanager.
openfootmanager/openfootmanager
Add a tool to the MCP server that lets AI agents play OpenFoot Manager.
openfootmanager/openfootmanager
Expose new backend behaviour to the frontend over Tauri IPC.
openfootmanager/openfootmanager
Build a new frontend component, panel, dashboard tab, or screen that matches the Matchday design language, works in light and dark, is keyboard and screen-reader accessible, reuses existing…
openfootmanager/openfootmanager
Verify a pull request with the frontend scripts, default and MCP backend tests and clippy, formatting, architecture checks and review evidence.
Works with
Categories
Write scenario-driven tests for an OpenFoot Manager feature, bug fix or story, or characterize weakly covered behaviour before a refactor. Write Tests is an agent skill from openfootmanager/openfootmanager. Write scenario-driven tests for an OpenFoot Manager feature, bug fix or story, or characterize weakly covered behaviour before a refactor.
Write Tests fits situations like: tasks that involve Test generation; tasks that involve Debugging; tasks that involve Agent memory.
Run `npx skills add openfootmanager/openfootmanager --skill write-tests -a claude-code`. Or copy the skill folder (.claude/skills/write-tests in openfootmanager/openfootmanager) into .claude/skills/write-tests in your project. Claude Code loads it when a task matches its description.
Run `npx skills add openfootmanager/openfootmanager --skill write-tests -a codex`. Or copy the skill folder (.claude/skills/write-tests in openfootmanager/openfootmanager) into .agents/skills/write-tests 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 openfootmanager/openfootmanager --skill write-tests -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-tests, .gemini/skills/write-tests, .github/skills/write-tests and .opencode/skills/write-tests in your project.
Going by SKILL.md and its folder, Write Tests needs the command-line tools its instructions call (git, cargo and npm). Its frontmatter pre-approves these tools: Read, Edit, Write, Grep, Glob, Bash.
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Write Tests is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 8.7k 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 Tests: OpenROAD Bug Fixer (The-OpenROAD-Project/OpenROAD, 3.2k stars), Alef (xberg-io/alef, 100 stars), State Snapshot Instrumenter (ArabelaTso/Skills-4-SE, 253 stars) and Feature Contract (FastLED/FastLED, 7.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
openfootmanager (a GitHub organization) maintains it in openfootmanager/openfootmanager, which has 1,135 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 9, 2026.
Source: openfootmanager/openfootmanager on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.