Test Roadmap
Ovid/paad
EXPERIMENTAL. An agent skill from Ovid/paad.
QA workflow for testing a feature or task implementation. An agent skill from unxed/f4.
$ npx skills add unxed/f4 --skill aif-qa -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install unxed/f4 aif-qa --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/unxed/f4.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/aif-qa .claude/skills/aif-qa && 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 "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .claude/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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/unxed/f4/tree/main/.agents/skills/aif-qaType 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 unxed/f4 --skill aif-qa -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install unxed/f4 aif-qa --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/aif-qa .agents/skills/aif-qa && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .agents/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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 unxed/f4 --skill aif-qa -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install unxed/f4 aif-qa --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/aif-qa .cursor/skills/aif-qa && 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 "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .cursor/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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/unxed/f4.git --path .agents/skills/aif-qa--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 unxed/f4 --skill aif-qa -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install unxed/f4 aif-qa --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/aif-qa .gemini/skills/aif-qa && 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 "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .gemini/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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 unxed/f4 aif-qaInstalls 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 unxed/f4 --skill aif-qa -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/aif-qa .github/skills/aif-qa && 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 "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .github/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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 unxed/f4 --skill aif-qa -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install unxed/f4 aif-qa --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/unxed/f4.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/aif-qa .opencode/skills/aif-qa && 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 "aif-qa" agent skill from https://github.com/unxed/f4/tree/main/.agents/skills/aif-qa into .opencode/skills/aif-qa/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "aif-qa", 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.
aif-qaQA workflow for testing a feature or task implementation. An agent skill from unxed/f4.
Aif QA is an agent skill from unxed/f4. QA workflow for testing a feature or task implementation. Analyzes changes, produces test plans, and describes concrete test scenarios. Use when user says "test this", "write test plan", "what should I test", or "QA this branch".
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including reference files (for example `references/CHANGE-SUMMARY.md`, `references/TEST-CASES.md` and `references/TEST-PLAN.md`).
It sits in Testing & QA, covering Test generation. It works with Git. The repository describes itself as: dual pane like a charm. The licence is BSD-3-Clause.
4 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f2717d5. 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:
ReadWriteGrepGlobBash(git *)Bash(mkdir *)AskUserQuestionTaskFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitFrom 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.
Aif QA loads about 3k tokens when it runs, and up to ~7.5k if it reads all its reference files. Until then it costs about 59 tokens; SKILL.md has 1,219 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 unxed/f4 at commit f2717d5, republished under its BSD-3-Clause licence (© unxed). 1,219 words, ~3,024 tokens.
.claude/skills/aif-qa/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Generates change summaries, produces test plans, and describes test scenarios for a feature or task implementation.
The skill operates in three sequential modes.
| Argument | Mode | What you do |
|---|---|---|
change-summary | Change summary | Analyze what changed, assess risks, produce a summary |
test-plan | Test plan | Create a structured test plan based on the change summary |
test-cases | Test cases | Describe concrete test scenarios based on the plan |
--all | Full pipeline | Run all three modes in sequence without prompting between stages |
FIRST: Read .ai-factory/config.yaml if it exists to resolve:
paths.description, paths.architecture, paths.qa (default: .ai-factory/qa)language.ui for AskUserQuestion prompts, progress messages, final summaries, and next-step guidancelanguage.artifacts for generated QA artifactslanguage.technical_terms for human-readable technical terminology style when generating artifactslanguage.artifacts is missing, use language.uiengit.enabled and git.base_branch for branch comparisonIf config.yaml doesn't exist, use defaults:
.ai-factory/DESCRIPTION.md.ai-factory/ARCHITECTURE.md.ai-factory/qa/ui_language: enartifact_language: entechnical_terms_policy: keeptruemainStore:
ui_language = language.ui || "en"artifact_language = language.artifacts || language.ui || "en"technical_terms_policy = language.technical_terms || "keep"git_enabled = git.enabled when present, otherwise truebase_branch = git.base_branch || "main"All AskUserQuestion prompts, user-visible explanations, stage completion messages, and next-step guidance MUST be written in ui_language.
All generated artifacts (change-summary.md, test-plan.md, test-cases.md) MUST be written in artifact_language.
Templates define structure, not language. Use the canonical English templates in templates/*.md. If artifact_language is not en, translate them to artifact_language before saving: headings, labels, checklist items, placeholders, enum labels, risk labels, and explanatory text must be in artifact_language.
Do not use English templates verbatim when artifact_language is not en. Preserve markdown structure, table shapes, checkbox syntax, test case IDs (TC-001), code identifiers, paths, commands, branch names, config keys, API names, package names, and raw error messages.
For artifact_language = ru, write human-readable prose, headings, risks, priorities, recommendations, test steps, and expected results in Russian. Keep code identifiers, filenames, branch names, commands, config keys, API names, and raw error text unchanged.
Apply technical_terms_policy while writing artifacts:
keep — keep common technical terms such as commit, branch, diff, endpoint, payload, rollback, regression, and fixture when that is clearer for the project audiencetranslate — translate human-readable technical terms where a natural target-language term existsmixed — translate ordinary prose terms while keeping code, infrastructure, and ecosystem terms unchangedIf git_enabled = false or the current directory is not a git work tree, do not run git diff/log commands. Use manual change context mode instead: ask the user in ui_language to provide one of these sources of change context before running change-summary: pasted diff, changed file list, short implementation description, or cancel.
Read the resolved description path if the file exists, to understand:
Read the resolved architecture path if the file exists, to understand:
Use this context when generating summaries, test plans, and test cases.
Read .ai-factory/skill-context/aif-qa/SKILL.md — MANDATORY if the file exists.
This file contains project-specific rules accumulated by /aif-evolve from patches,
codebase conventions, and tech-stack analysis. These rules are tailored to the current project.
How to apply skill-context rules:
Parse $ARGUMENTS fully before doing anything else:
--all flag — if present, set all_mode = true and remove the flag from argumentschange-summary, test-plan, or test-cases; remove it from argumentsResolve the working branch:
If git_enabled = false or the repository is not a git work tree:
If branch was provided in arguments → use it as the resolved branch label
Otherwise → set resolved_branch = "manual"
Use manual change context mode for analysis
If git_enabled = true and the repository is a git work tree:
If branch was provided in arguments → use it as the resolved branch
Otherwise → run: git branch --show-currentStore both values for use in all reference files:
resolved_branch — the branch being analyzed (used to locate/save artifacts)
artifact_dir — <resolved paths.qa>/<branch-slug>, where branch-slug is a deterministic, filesystem-safe, collision-resistant slug derived from resolved_branch. Compute it in three steps:
resolved_branch and replace every character that is not in [A-Za-z0-9._-] with -, collapse runs of consecutive - into a single -, and trim leading/trailing -. If the result is empty, use branch. Then MUST truncate to the first 40 ASCII characters. Because the normalized safe_slug alphabet is [A-Za-z0-9._-], byte length and character length are identical. Call this safe_slug.git hash-object --stdin <<< "<resolved_branch>" and take the first 8 hex characters of the output. Call this hash8. The hash is derived from the original, unnormalized branch name so branches that collapse to the same safe_slug still produce different derived slugs in normal use.branch-slug = "<safe_slug>-<hash8>".Why the hash: a readable slug alone is lossy — feature/foo and feature-foo normalize to the same safe_slug and would overwrite each other's artifacts. Appending a short hash of the full original name keeps the derived slug stable, readable, and collision-resistant for practical branch naming.
Examples:
feature/foo → safe_slug=feature-foo, hash8=a72ccce7 → feature-foo-a72ccce7feature-foo → safe_slug=feature-foo, hash8=6f80dfc6 → feature-foo-6f80dfc6main → safe_slug=main, hash8=<computed> → main-<hash8>all_mode — whether to skip inter-stage prompts
If no mode was provided and all_mode = false — ask the user in ui_language:
AskUserQuestion in `ui_language`.
Meaning: ask which QA mode to run.
Options meaning:
1. Change summary (`change-summary`) — analyze what changed, assess risks, produce a summary
2. Test plan (`test-plan`) — create a structured test plan based on the change summary
3. Test cases (`test-cases`) — describe concrete test scenarios based on the plan
4. Full pipeline (`--all`) — run all three modes in sequenceThe skill runs strictly sequentially — each stage uses the artifact from the previous one:
change-summary → test-plan → test-casesRead the detailed instructions for the selected mode:
Read references/CHANGE-SUMMARY.md
Read references/TEST-PLAN.md
Read references/TEST-CASES.md
Run all three modes in sequence. After each stage completes successfully,
proceed to the next automatically — do NOT show the inter-stage AskUserQuestion.
1. Execute change-summary (references/CHANGE-SUMMARY.md) → save artifact
2. Execute test-plan (references/TEST-PLAN.md) → save artifact
3. Execute test-cases (references/TEST-CASES.md) → save artifact
4. Show context cleanup prompt (Step 6 of TEST-CASES.md)If any stage fails (e.g. git error, diff too large and user cancels) — stop the pipeline and report which stage failed.
Do not replace the manual QA plan with automated test implementation details. You may mention existing automated checks only as supporting verification; the primary output must remain manual QA scenarios.
| Priority | When to use |
|---|---|
| High | Core business logic, user data, payments, security, authorization |
| Medium | Supporting functionality, UI/UX, reports, integrations |
| Low | Cosmetic changes, rare scenarios, nice-to-have |
<paths.qa>/<branch-slug>/ — specifically change-summary.md, test-plan.md, and test-cases.md. The --all flag respects the same boundary.paths.description, paths.architecture, paths.qa, language.ui, language.artifacts, language.technical_terms, git.enabled, and git.base_branch; never writes config.yaml.test-plan without a change-summary artifacttest-cases without a test-plan artifact© unxed, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in .agents/skills/aif-qa of unxed/f4.
Open the folder on GitHubat commit f2717d5
Aif QA 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 |
|---|---|---|---|---|---|---|
| Aif QA this skillunxed/f4 | 241 | — | ~3k | Automated safety check: Pass | BSD-3-Clause | |
| Test RoadmapOvid/paad | 131 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Verify Changesh0x91b/dev-3.0 | 307 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| Codexqa Testcase Generatoropenqa-cn/codexqa | 152 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Git Facade Test Conventionsruby-git/ruby-git | 1.8k | — | ~4.2k | Automated safety check: Pass | MIT | |
| MAUI UI Test Writerdotnet/maui | 23k | — | ~3k | Automated safety check: Pass | MIT |
Ovid/paad
EXPERIMENTAL. An agent skill from Ovid/paad.
h0x91b/dev-3.0
How to test and verify work in the dev-3.0 repo — which vitest config covers what, how to write a test that fits the house style, mocking Electrobun RPC and i18n providers, what coverage is actually…
openqa-cn/codexqa
Generates test plans and test cases from local requirements for APP, Web, and server.
ruby-git/ruby-git
Conventions for writing and reviewing unit and integration tests of Git::Repository facade methods in the ruby-git project, covering setup, cases, grouping and scope.
dotnet/maui
Writes UI tests that reproduce a GitHub issue in .NET MAUI and keeps iterating until the tests actually fail, proving they catch the bug.
internet-court/internet-court-skill
Create a new git escrow bounty for a test suite. An agent skill from internet-court/internet-court-skill.
unxed/f4
Comprehensive documentation guide for Golang projects, covering godoc comments, README, CONTRIBUTING, CHANGELOG, Go Playground, Example tests, API docs, and llms.txt.
unxed/f4
Golang code style conventions — line length and breaking, variable declarations, control flow clarity, when comments help vs hurt.
unxed/f4
Comprehensive guide for Go database access — parameterized queries, struct scanning, NULLable columns, transactions, isolation levels, SELECT FOR UPDATE, connection pool, batch processing, context…
unxed/f4
Security audit checklist based on OWASP Top 10 and best practices.
unxed/f4
Go (Golang) naming conventions — covers packages, constructors, structs, interfaces, constants, enums, errors, booleans, receivers, getters/setters, functional options, acronyms, test functions, and…
unxed/f4
Golang concurrency design — goroutine lifecycle and leak prevention, channels and select, channel ownership and direction, sync.Mutex/RWMutex/sync.Map/sync.Once/atomics, errgroup, singleflight…
Works with
Categories
QA workflow for testing a feature or task implementation. An agent skill from unxed/f4. Aif QA is an agent skill from unxed/f4. QA workflow for testing a feature or task implementation.
Aif QA fits situations like: user says test this; write test plan; what should I test.
Run `npx skills add unxed/f4 --skill aif-qa -a claude-code`. Or copy the skill folder (.agents/skills/aif-qa in unxed/f4) into .claude/skills/aif-qa in your project. Claude Code loads it when a task matches its description.
Run `npx skills add unxed/f4 --skill aif-qa -a codex`. Or copy the skill folder (.agents/skills/aif-qa in unxed/f4) into .agents/skills/aif-qa 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 unxed/f4 --skill aif-qa -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/aif-qa, .gemini/skills/aif-qa, .github/skills/aif-qa and .opencode/skills/aif-qa in your project.
Going by SKILL.md and its folder, Aif QA needs the command-line tools its instructions call (git). Its frontmatter pre-approves these tools: Read, Write, Grep, Glob, Bash(git *), Bash(mkdir *), AskUserQuestion, Task.
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.
Aif QA is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 4.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Aif QA: Test Roadmap (Ovid/paad, 131 stars), Verify Changes (h0x91b/dev-3.0, 307 stars), Codexqa Testcase Generator (openqa-cn/codexqa, 152 stars) and Git Facade Test Conventions (ruby-git/ruby-git, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
unxed (a GitHub user) maintains it in unxed/f4, which has 241 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 9, 2026.
Source: unxed/f4 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.