Bmad Testarch Atdd
bmad-code-org/bmad-method-test-architecture-enterprise
Generate red-phase acceptance test scaffolds using the TDD cycle.
Plans and scaffolds e2e tests in packages/sdk/e2e for a new or changed public SDK API.
$ npx skills add tetherto/qvac --skill qv-sdk-e2e-create -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tetherto/qvac qv-sdk-e2e-create --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/tetherto/qvac.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .claude/skills/qv-sdk-e2e-create && 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 "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .claude/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-createType 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 tetherto/qvac --skill qv-sdk-e2e-create -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tetherto/qvac qv-sdk-e2e-create --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tetherto/qvac.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .agents/skills/qv-sdk-e2e-create && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .agents/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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 tetherto/qvac --skill qv-sdk-e2e-create -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tetherto/qvac qv-sdk-e2e-create --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tetherto/qvac.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .cursor/skills/qv-sdk-e2e-create && 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 "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .cursor/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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/tetherto/qvac.git --path .agents/skills/qv-sdk-e2e-create--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 tetherto/qvac --skill qv-sdk-e2e-create -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tetherto/qvac qv-sdk-e2e-create --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tetherto/qvac.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .gemini/skills/qv-sdk-e2e-create && 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 "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .gemini/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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 tetherto/qvac qv-sdk-e2e-createInstalls 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 tetherto/qvac --skill qv-sdk-e2e-create -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/tetherto/qvac.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .github/skills/qv-sdk-e2e-create && 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 "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .github/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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 tetherto/qvac --skill qv-sdk-e2e-create -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install tetherto/qvac qv-sdk-e2e-create --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/tetherto/qvac.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/qv-sdk-e2e-create .opencode/skills/qv-sdk-e2e-create && 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 "qv-sdk-e2e-create" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-sdk-e2e-create into .opencode/skills/qv-sdk-e2e-create/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-sdk-e2e-create", 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.
qv-sdk-e2e-createPlans and scaffolds e2e tests in packages/sdk/e2e for a new or changed public SDK API.
Qv SDK E2E Create is an agent skill from tetherto/qvac. Plans and scaffolds e2e tests in packages/sdk/e2e for a new or changed public SDK API. Use when adding or modifying SDK functionality that is exposed to consumers. Enforces happy / sad / error coverage, deterministic model-output assertions, desktop/mobile/Electron consumer coverage, smoke-suite selection, and local validation with run:local.
Its SKILL.md is about 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 Testing & QA, covering End-to-end testing and Project scaffolding. The repository describes itself as: Open-source local AI SDK - run AI on-device with no cloud, no API keys. Supports GGUF, RAG, image, music, and video generation, speech-to-text, P2P inference, and more… The licence is Apache-2.0.
8 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit d92f697. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npxnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npx and npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
EXPECTED_TOKENFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Qv SDK E2E Create loads about 3k tokens when it runs. Until then it costs about 91 tokens; SKILL.md has 1,181 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 tetherto/qvac at commit d92f697, republished under its Apache-2.0 licence (© tetherto). 1,181 words, ~2,973 tokens.
.claude/skills/qv-sdk-e2e-create/SKILL.md (or your agent's skills folder).Plan and scaffold e2e tests in packages/sdk/e2e for a new or changed SDK feature exposed through
the public API.
Applies to SDK changes in packages/sdk/ that touch the public API surface.
Use when:
/qv-sdk-e2e-create.<feature>" or similar.Do NOT use for:
packages/sdk/ (this skill covers only the e2e suite under packages/sdk/e2e).Investigate first, then propose a concrete plan. Only ask the user for information that cannot be recovered from code or context.
packages/sdk/examples/ or tests under packages/sdk/e2e/tests/.tests/test-definitions.ts and
its executor. Mirror its style unless there's reason to deviate.numeric-range).run:local:electron --filter <feature>- to verify either the handler
or an intentional skip for Electron/Snap.For any feature that invokes a model, do not default to shape-only checks. type validation proves
nothing about model correctness and must be a last resort.
Pick the strongest achievable strategy:
temperature: 0, fixed seed,
top_k: 1) so a known token must appear. Assert with contains-all.
Example: prompt "Reply with only the word APPLE." → assert result contains APPLE.contains-any.numeric-range. Pick bounds tolerant to minor model drift.regex. Keep the
pattern anchored and stable.type with minLength. Flag as weak coverage in the plan.throws-error with a substring that is stable across SDK versions.function — use for deterministic but non-trivial checks like cosine similarity against a
reference vector.If the model's output is inherently non-deterministic and cannot be constrained, say so in the plan and justify why shape-only or range-based coverage is the best achievable — do not silently ship a weak assertion.
Every public-API feature MUST have at minimum:
throws-error.More cases are encouraged for multi-branch features.
Executor placement (from packages/sdk/e2e/AGENTS.md):
tests/shared/executors/.node:fs, node:path, process.cwd(), or other Node-only APIs → tests/desktop/executors/.Platform, bundled assets, or anything specific to React Native → tests/mobile/executors/.Never import node:* from tests/shared/ or tests/mobile/.
Placement under tests/shared/executors/ does not register an executor automatically. Explicitly check
and update every compatible consumer:
tests/desktop/consumer.tstests/mobile/consumer.tstests/electron/consumer.ts — also used by the Snap consumerIf a consumer cannot support the tests, add a documented SkipExecutor; do not leave scheduled tests
without a matching handler, which fails at runtime with No handler found.
Mobile concerns to address in the plan:
SkipExecutor entry.node:fs is unavailable. Assets must be bundled via qvac-test.config.js →
consumers.mobile.assets.patterns.SkipExecutor at the top of tests/mobile/consumer.ts with a clear reason.If the feature cannot run on mobile at all, document the skip reason. Evaluate Electron/Snap compatibility independently rather than treating desktop-only coverage as automatic.
suites: ["smoke"] if the feature has no existing smoke coverage.tests/<feature>-tests.ts)import type { TestDefinition } from "@qvac/test-suite";
export const <feature>Tests: TestDefinition[] = [
{
testId: "<feature>-happy",
params: { /* canonical input */ },
expectation: { validation: "contains-all", contains: ["EXPECTED_TOKEN"] },
suites: ["smoke"], // only if this test qualifies
metadata: { category: "<feature>", estimatedDurationMs: 10_000 },
},
{
testId: "<feature>-edge",
params: { /* boundary case */ },
expectation: { validation: "type", expectedType: "string" },
metadata: { category: "<feature>", estimatedDurationMs: 10_000 },
},
{
testId: "<feature>-error",
params: { /* invalid input */ },
expectation: { validation: "throws-error", errorContains: "specific message" },
metadata: { category: "<feature>", estimatedDurationMs: 2_000 },
},
];Register in tests/test-definitions.ts:
import { <feature>Tests } from "./<feature>-tests.js";
// ...
export const allTests: TestDefinition[] = [
// ...
...<feature>Tests,
];Extend AbstractModelExecutor (base: tests/shared/executors/abstract-model-executor.ts) or use
createExecutor with TestHandler for ad-hoc cases. Bind handlers per testId, and use
ResourceManager.ensureLoaded("<resource-name>") to obtain model IDs.
Register the new executor in every compatible handlers: [...] array: desktop, mobile, and Electron
(which also covers Snap). Add a documented SkipExecutor for intentionally unsupported consumers.
After scaffolding, provide the exact commands for every compatible local consumer. Do not mark the task complete until the user confirms those tests pass locally.
cd packages/sdk/e2e
# If packages/sdk (outside e2e) or packages/inference changed
npm run install:build:full
# Otherwise (only test code in packages/sdk/e2e changed)
npm run install:build
npx qvac-test run:local:desktop --filter <feature>-
npx qvac-test run:local:electron --filter <feature>- # verifies the handler or intentional skipAlways use install:build:full once packages/sdk itself changed, even if packages/inference has no
diff lines of its own — install:build:sdk trusts the published @qvac/inference range, which can already
be behind the checked-out packages/inference source from unrelated merged work.
For mobile verification of a smoke candidate (required before tagging suites: ["smoke"]):
npx qvac-test run:local:android --filter <feature>- # or run:local:ios| Validation | Use for | Notes |
|---|---|---|
contains-all / contains-any | Keyword or closed-set answers | Preferred over type when achievable |
regex | Structured output (JSON keys, date, lang ID) | Keep pattern anchored and stable |
numeric-range | Scores, latencies, embedding magnitude | Pick bounds tolerant to minor model drift |
type (+ minLength) | Last-resort shape check | Shallow; flag as weak coverage |
throws-error | Every error path | errorContains must be stable across bumps |
function | Complex deterministic checks |
Before presenting the plan:
type.--filter prefix.Before marking scaffolding complete:
tests/test-definitions.ts./qv-docs-update when the tested surface is user-facing. Never auto-run
it — the skill is manual-only.packages/sdk/e2e/AGENTS.md and
packages/sdk/e2e/README.md.@qvac/test-suite dist/schemas/expectations.js.packages/sdk/e2e/tests/translation-salamandra-tests.ts
(contains-any over expected Spanish tokens).packages/sdk/e2e/tests/vision-tests.ts (throws-error with errorContains).packages/sdk/e2e/tests/completion-tests.ts (type: "string").© tetherto, 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/qv-sdk-e2e-create of tetherto/qvac.
Open the folder on GitHubat commit d92f697
Qv SDK E2E Create 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 |
|---|---|---|---|---|---|---|
| Qv SDK E2E Create this skilltetherto/qvac | 674 | — | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Bmad Testarch Atddbmad-code-org/bmad-method-test-architecture-enterprise | 104 | 3 repos | ~893 | Automated safety check: Pass | Custom licence | |
| Add Full Slicefullstackhero/dotnet-starter-kit | 6.8k | — | ~783 | Automated safety check: Pass | MIT | |
| Rocky New CLI Commandrocky-data/rocky | 304 | — | ~1.4k | Automated safety check: Pass | Apache-2.0 | |
| Senior QAalirezarezvani/claude-skills | 28k | 1 repos | ~2.1k | Automated safety check: Pass | MIT | |
| Senior QAborghei/Claude-Skills | 874 | — | ~1.6k | Automated safety check: Pass | MIT |
bmad-code-org/bmad-method-test-architecture-enterprise
Generate red-phase acceptance test scaffolds using the TDD cycle.
fullstackhero/dotnet-starter-kit
Build a capability end-to-end — backend vertical slice (Contracts→handler→validator→endpoint) AND the React page wired to it.
rocky-data/rocky
End-to-end checklist for adding a new Rocky CLI subcommand across the engine, JSON schema export, Dagster Pydantic types, Dagster resource wiring, and VS Code extension command.
alirezarezvani/claude-skills
Generates unit tests, integration tests, and E2E tests for React/Next.js applications.
borghei/Claude-Skills
Testing for React/Next.js with Jest, React Testing Library, and Playwright.
xberg-io/alef
Mechanics of alef's Minijinja template system: which templateenv module to call, how to register a template, inline-template rules, and engine settings.
tetherto/qvac
Creates a Solutions page in the QVAC documentation website from a real use case, generalizing the case into reusable guidance and registering the page in the site navigation.
tetherto/qvac
Updates the docs website after a change to the SDK or CLI. An agent skill from tetherto/qvac.
tetherto/qvac
Plan and prepare the QVAC agent-stack release cascade across @qvac/inference, @qvac/sdk, @qvac/cli, @qvac/ai-sdk-provider, @qvac/opencode-plugin, and @qvac/openclaw-plugin.
tetherto/qvac
Run the deterministic code-quality audit, turn related findings into contextual remediation groups, prepare approval-gated Asana proposals, reconcile recurring runs, or configure twice-monthly…
tetherto/qvac
Review C++ changes for string parameter and call-site efficiency conventions (std::stringview, std::string&&, const std::string&, const char, and TransparentStringMap lookup).
tetherto/qvac
Generate changelog entries for a target add-on package. An agent skill from tetherto/qvac.
Categories
Plans and scaffolds e2e tests in packages/sdk/e2e for a new or changed public SDK API. Qv SDK E2E Create is an agent skill from tetherto/qvac. Plans and scaffolds e2e tests in packages/sdk/e2e for a new or changed public SDK API.
Qv SDK E2E Create fits situations like: modifying SDK functionality that is exposed to consumers; tasks that involve End-to-end testing; tasks that involve Project scaffolding.
Run `npx skills add tetherto/qvac --skill qv-sdk-e2e-create -a claude-code`. Or copy the skill folder (.agents/skills/qv-sdk-e2e-create in tetherto/qvac) into .claude/skills/qv-sdk-e2e-create in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tetherto/qvac --skill qv-sdk-e2e-create -a codex`. Or copy the skill folder (.agents/skills/qv-sdk-e2e-create in tetherto/qvac) into .agents/skills/qv-sdk-e2e-create 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 tetherto/qvac --skill qv-sdk-e2e-create -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qv-sdk-e2e-create, .gemini/skills/qv-sdk-e2e-create, .github/skills/qv-sdk-e2e-create and .opencode/skills/qv-sdk-e2e-create in your project.
Going by SKILL.md and its folder, Qv SDK E2E Create needs the command-line tools its instructions call (npx and npm) and credentials named EXPECTED_TOKEN. Our summary lists: Node.js; A credential in EXPECTED_TOKEN.
SKILL.md contains no URLs. Its commands use npx and npm, 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.
Qv SDK E2E Create 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 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.
Skills that share tags, products or a category with Qv SDK E2E Create: Bmad Testarch Atdd (bmad-code-org/bmad-method-test-architecture-enterprise, 104 stars), Add Full Slice (fullstackhero/dotnet-starter-kit, 6.8k stars), Rocky New CLI Command (rocky-data/rocky, 304 stars) and Senior QA (alirezarezvani/claude-skills, 28k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
tetherto (a GitHub organization) maintains it in tetherto/qvac, which has 674 GitHub stars. The repository holds 50 skills in this directory. The repository was last updated on October 7, 2026.
Source: tetherto/qvac on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.