Squad Git Branching Workflow
microsoft/waza
Dev-first branching model for the Squad project: feature work branches from dev, issue branches follow a naming rule and parallel issues use git worktrees.
Plan and run local PR validation for tetherto/qvac PRs. An agent skill from tetherto/qvac.
$ npx skills add tetherto/qvac --skill qv-pr-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install tetherto/qvac qv-pr-test --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-pr-test .claude/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .claude/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-testType 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-pr-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install tetherto/qvac qv-pr-test --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-pr-test .agents/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .agents/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install tetherto/qvac qv-pr-test --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-pr-test .cursor/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .cursor/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-test--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-pr-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install tetherto/qvac qv-pr-test --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-pr-test .gemini/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .gemini/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-testInstalls 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-pr-test -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-pr-test .github/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .github/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-test -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-pr-test --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-pr-test .opencode/skills/qv-pr-test && 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-pr-test" agent skill from https://github.com/tetherto/qvac/tree/main/.agents/skills/qv-pr-test into .opencode/skills/qv-pr-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "qv-pr-test", 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-pr-testPlan and run local PR validation for tetherto/qvac PRs. An agent skill from tetherto/qvac.
Qv PR Test is an agent skill from tetherto/qvac. Plan and run local PR validation for tetherto/qvac PRs. Reuses the shared PR worktree, discovers touched packages and package.json scripts, recommends a test tier, and analyzes results. Use when testing a PR or invoking /qv-pr-test.
Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It sits in Development, covering Git worktrees. It works with npm and Git. 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.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit c3a6030. 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:
gitbunnpmnpxnodeghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, npm, npx and gh, 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.
Qv PR Test loads about 4.2k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,809 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 c3a6030, republished under its Apache-2.0 licence (© tetherto). 1,809 words, ~4,213 tokens.
.claude/skills/qv-pr-test/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Manual-trigger local PR validation for any GitHub PR in tetherto/qvac.
The skill prepares an isolated PR worktree, discovers changed packages and test options, recommends a tier, and then runs or proposes the selected validation steps according to package type.
High-level flow:
Use when:
/qv-pr-test.https://github.com/tetherto/qvac/pull/1234.android or ios), desired tier.If PR URL is missing, ask for it. Do not ask other questions until discovery has produced a concrete recommendation.
This skill must not touch the user's local working tree.
Forbidden against the user's main repo:
git switch, git checkout, git reset, git restoregit stash, git pull, git merge, git rebase, git cherry-pickgit cleangh pr checkoutThe shared script worktree-prepare.mjs is allowed to operate only inside ~/.cache/qvac-pr-review/pr-<num>/. It may fetch PR refs, add/remove worktrees, reset tracked files, and clean untracked artifacts on SHA drift.
The agent may run non-e2e package manager/build/test commands only inside the prepared worktree path printed by worktree-prepare.mjs.
For every selected tier, agent-owned package validation must prepare the touched package root before examples or non-e2e tests run. If discovery reports commands.install or commands.build, include those setup commands first in the proposed command plan and execute them first from the package cwd.
Track this checklist:
- [ ] 0a. Prepare worktree with worktree-prepare.mjs
- [ ] 0b. Discover packages/scripts/tests with pr-test-discover.mjs
- [ ] 1. Present recommendation and tier menu
- [ ] 2. Ask user to select tier and mobile platform when needed
- [ ] 3. Print proposed command sequence
- [ ] 4a. Run agent-owned setup/examples when safe and applicable
- [ ] 4b. If SDK e2e is included: stop and ask user to run the printed e2e setup + e2e command block
- [ ] 4c. If SDK e2e is not included: ask approval, then execute remaining commands
- [ ] 5. Analyze logs/reports
- [ ] 6. Summarize pass/fail and next actionRun:
node .agents/skills/_lib/pr-skills/worktree-prepare.mjs <PR-URL>Parse stdout:
WORKTREE_PATH=<absolute path>
HEAD_SHA=<sha>
PATCH_PATH=<absolute path to patch>
BASE_REF=<remote>/<baseRefName>If stderr contains WORKTREE_FALLBACK=<reason>, use fallback mode:
pr-test-discover.mjs fetch the patch with gh pr diff --patch into the platform temp directory when PATCH_PATH is unavailable.Run:
node .agents/skills/_lib/pr-skills/pr-test-discover.mjs <PR-URL> --worktree <WORKTREE_PATH> --head-sha <HEAD_SHA> --patch <PATCH_PATH>The helper emits a JSON manifest with:
recommendation.recommendedTierrecommendation.recommendationReasontouchedPackages[]touchedPackages[].scriptstouchedPackages[].commandstouchedPackages[].addedOrModifiedExamplestouchedPackages[].exampleCommandstouchedPackages[].relatedExampleCommandstouchedPackages[].addedOrModifiedTeststouchedPackages[].relatedTeststouchedPackages[].sdkE2eSetup — on the SDK package, and also on packages/inference if it's touched (a
local inference build only reaches e2e through the SDK's setup, not a standalone inference build)Discovery is based on committed PR state only. Do not run git diff, git status, or git ls-files --modified inside the worktree for classification.
Use touchedPackages[].commands.install and touchedPackages[].commands.build as package-root setup steps for all executable tiers. These setup commands belong before changed examples, related examples, non-SDK tests, or SDK manual e2e command blocks.
All tiers include necessary install/build setup for the touched package roots.
not applicable.e2e tests on desktop. Non-SDK runs the smallest unit-level package script (test:unit or test), or first available test:*.android or ios). Non-SDK uses mobile scripts only if package.json exposes them.--suite smoke on desktop. Non-SDK advances to the next least-to-most-complete script if one exists.--suite smoke on selected mobile platform. Non-SDK uses mobile scripts only if package.json exposes them.test:all if present, otherwise all applicable test:* scripts in increasing completeness order.T2 and every higher tier are additive over T1. If exampleCommands is non-empty, the proposed command plan for T1/T2/T3/T4/T5/T6/T7 MUST include package-root install/build setup first, then every changed example command before the e2e/smoke/full test command. Do not summarize examples as "applicable" without emitting runnable commands. Changed helper files under examples, such as shared.ts or utils.ts, should be listed as supporting files but not emitted as runnable commands.
Related examples and tests are bundled into the existing tiers as proposal items, not separate options:
relatedExampleCommands are examples that appear semantically related to the changed paths. Prefer safe examples first: no obvious required input/device and no obvious output-file generation. Present them after changed examples as "related examples proposed by discovery", and let the user deselect them before agent execution.relatedTests are existing SDK e2e filters related to the changed paths. If no e2e files changed, use the highest-scoring related filter as the proposed T2 filter. If e2e files did change, show related filters as optional additions.transcription e2e filter even if the PR did not edit those files directly.Changed examples are agent-run steps after package-root install/build setup succeeds. SDK e2e setup is not agent-run; hand it to the user together with the e2e command because it requires npm auth.
T6/T7 replace the smoke step from T4/T5. T1-T3 still run unchanged.
Always show the recommendation before the tier prompt. The user can override it.
packages/sdk) default: recommend T2. This covers install/build, changed examples if present, and changed e2e on desktop. Mobile is opt-in because it is slower and usually covered by CI.packages/inference touched: discovery attaches sdkE2eSetup / sdkE2eCwd to it, but inference has no e2e or examples of its own, so the non-SDK default above would leave the setup command with nothing to run after it. Pair it with an SDK e2e run in sdkE2eCwd and recommend T4 (--suite smoke on desktop) — that is what CI runs for an inference change, and with no changed e2e files T2 has no filter to work from. If the PR also touches packages/sdk/e2e, use that package's changed tests / relatedTests filter instead.not applicable.Use AskQuestion for tier selection. Ask for android or ios only when the recommended or selected tier includes mobile (T3, T5, or T7).
The tier prompt MUST include T1 whenever exampleCommands or relatedExampleCommands is non-empty, even when the recommended tier is higher. Do not hide lower additive tiers. If examples are absent, show T1 as not applicable or omit it with an explicit "no changed or related examples" note in the plan.
Before executing examples, show both changed and related example commands. Related examples are proposed, not mandatory; use AskQuestion to let the user choose which related examples to include when any are present.
SDK changed examples may be agent-run inside the prepared worktree after the SDK package root has been installed and built.
SDK e2e setup and e2e commands are manual/user-run:
npm run install:buildnpm run install:build:fullnpx qvac-test run:local:*Do not execute those agentically. e2e setup needs npm/GitHub Packages auth that is not available in the agent context, and SDK e2e commands are device/broker-dependent and may run for a long time.
For any SDK e2e command, run setup from packages/sdk/e2e first, using the exact command from
touchedPackages[].sdkE2eSetup.command in the discovery manifest — do not re-derive it from which files
changed. It resolves to install:build:full whenever the PR touches packages/sdk outside e2e/ or
packages/inference at all, even if packages/inference itself has no diff lines: CI always builds
packages/inference from the branch for SDK e2e (inference-source: branch is unconditional in
on-pr-test-sdk.yml), because the checked-out packages/inference can already be ahead of the last npm
publish from unrelated merged PRs — testing the branch's SDK against the published range (what
install:build alone would do) can silently diverge from what CI tests. Only a PR limited to
packages/sdk/e2e/ resolves to the lighter install:build.
Do not skip setup based on assumed previous state. The PR worktree is treated as clean/synchronized, and SDK e2e validation must prepare the test package explicitly.
Do not separately run bun install or bun run build in packages/sdk before SDK e2e unless the chosen tier also includes non-e2e SDK example validation that specifically needs it.
For SDK e2e tiers, print the e2e setup command and e2e command for the user to run manually. The agent must not run npm run install:build, npm run install:build:full, or npx qvac-test run:local:* from packages/sdk/e2e.
Generate commands for the user's shell/OS. Do not assume POSIX-only utilities or paths. In particular:
mkdir -p only for POSIX shells. For PowerShell, use New-Item -ItemType Directory -Force.export NAME=... for POSIX, $env:NAME = "..." for PowerShell).Run ID format:
pr-<num>-<headSha7>-<tier>-<platform-or-desktop>Report directory:
<WORKTREE_PATH>/packages/sdk/e2e/reports/<runId>/Manual command block shape for POSIX shells:
export QVAC_PR_TEST_RUN_ID=pr-1234-abcdef0-t3-android
export QVAC_PR_TEST_REPORT_DIR=<WORKTREE_PATH>/packages/sdk/e2e/reports/$QVAC_PR_TEST_RUN_ID
mkdir -p $QVAC_PR_TEST_REPORT_DIR/logs
cd <WORKTREE_PATH>/packages/sdk/e2e
npm run install:build:full
npx qvac-test run:local:desktop --filter vision- --runId $QVAC_PR_TEST_RUN_ID --report-dir $QVAC_PR_TEST_REPORT_DIR
npx qvac-test run:local:android --filter vision- --runId $QVAC_PR_TEST_RUN_ID --report-dir $QVAC_PR_TEST_REPORT_DIRManual command block shape for PowerShell:
$env:QVAC_PR_TEST_RUN_ID = "pr-1234-abcdef0-t3-android"
$env:QVAC_PR_TEST_REPORT_DIR = "<WORKTREE_PATH>/packages/sdk/e2e/reports/$env:QVAC_PR_TEST_RUN_ID"
New-Item -ItemType Directory -Force "$env:QVAC_PR_TEST_REPORT_DIR/logs"
Set-Location "<WORKTREE_PATH>/packages/sdk/e2e"
npm run install:build:full
npx qvac-test run:local:desktop --filter vision- --runId $env:QVAC_PR_TEST_RUN_ID --report-dir $env:QVAC_PR_TEST_REPORT_DIR
npx qvac-test run:local:android --filter vision- --runId $env:QVAC_PR_TEST_RUN_ID --report-dir $env:QVAC_PR_TEST_REPORT_DIRAgent-owned SDK setup and changed-example command shape for POSIX shells:
cd <WORKTREE_PATH>/packages/sdk
bun install
bun run build
bun run examples/<changed-example>.tsAgent-owned SDK setup and changed-example command shape for PowerShell:
Set-Location "<WORKTREE_PATH>/packages/sdk"
bun install
bun run build
bun run examples/<changed-example>.tsThe user runs the e2e setup command and the qvac-test run:local:* commands. The agent may run changed examples separately only after the required SDK package-root install/build state exists or has been prepared without e2e npm auth.
Do not use script for log capture. It is not portable in this agent environment. For agent-run example steps, rely on terminal output. For user-run setup/e2e, rely on qvac-test's structured --report-dir output first; ask the user to paste terminal output only if setup fails before report files are produced or report files are missing/incomplete. Keep the --runId unchanged.
When the user says the commands finished:
<WORKTREE_PATH>/packages/sdk/e2e/reports/<runId>/ first. Prefer qvac-test's structured report files over terminal logs.For non-SDK packages, show the proposed command list and ask for approval before execution.
Each step must show:
cwdRun commands one at a time inside the worktree. Capture logs to:
<platform temp dir>/qvac-pr-test/pr-<num>/<package-name-or-path>/<step>.logAbort on first non-zero exit unless the user explicitly opted into continuing after failures.
Before executing or asking the user to run anything, print:
## PR #<num> - test plan
Recommended tier: <tier>
Reason: <short reason>
Touched packages:
- `<path>` - <kind>, <summary of scripts/examples/tests>
Changed examples:
- `<path>` - runnable/not runnable
Related examples proposed:
- `<path>` - safe/needs input/writes output, include by default? <yes/no>
Related e2e filters proposed:
- `<filter>` - why
Proposed commands:
1. `<cwd>` - `<command>` - <why>
Manual-run required:
<yes/no; if yes, explain SDK e2e must be run by user>After execution or log analysis, print:
## PR #<num> - test results
### Failed
<failures first, with log file paths and short error snippets>
### Passed
<passed steps>
### Not applicable
<examples/tests/mobile tiers skipped because absent>
Logs: `<path>`.agents/skills/_lib/pr-skills/worktree-prepare.mjs.agents/skills/_lib/pr-skills/pr-test-discover.mjs.agents/skills/_lib/pr-skills/pr-test-generic.mjs.agents/skills/_lib/pr-skills/pr-test-sdk.mjs.agents/skills/_lib/pr-skills/worktree.mjspackages/sdk/e2e/AGENTS.mdpackages/sdk/e2e/package.jsonpackages/sdk/e2e/README.md© 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
SKILL.md and 1 other file in .agents/skills/qv-pr-test of tetherto/qvac.
Open the folder on GitHubat commit c3a6030
Qv PR Test 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 PR Test this skilltetherto/qvac | 681 | — | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Squad Git Branching Workflowmicrosoft/waza | 1.4k | 4 repos | ~1.5k | Automated safety check: Pass | MIT | |
| Cabloy Worktree Environmentcabloy/cabloy | 982 | — | ~2.9k | Automated safety check: Notes | MIT | |
| Move To Worktreefoyzulkarim/claude-lens | 250 | — | ~663 | Automated safety check: Notes | MIT | |
| Git PR Workflowandymai/brepjs | 114 | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| Devcontainer Devstacklok/toolhive-studio | 170 | — | ~3.8k | Automated safety check: Notes | Apache-2.0 |
microsoft/waza
Dev-first branching model for the Squad project: feature work branches from dev, issue branches follow a naming rule and parallel issues use git worktrees.
cabloy/cabloy
This skill must be used only when the user explicitly invokes /cabloy-worktree-environment or explicitly asks to perform the named Cabloy worktree-environment setup.
foyzulkarim/claude-lens
After /start-task: park the current clean, pushed feature branch in its own issue-numbered nested worktree (.worktrees/<issue) and return the primary checkout to current main, so the next parallel…
andymai/brepjs
This skill should be used when committing, pushing, branching, or merging in the brepjs repository — when a task involves "pre-commit hook failed" (which tier ran, how to bypass), "commit rejected…
stacklok/toolhive-studio
Spin up and interact with ToolHive Studio's containerized dev environment (Xvfb + noVNC + DinD).
aaddrick/claude-pipeline
A skill your agent uses when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees in .worktrees/
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
Plan and run local PR validation for tetherto/qvac PRs. An agent skill from tetherto/qvac. Qv PR Test is an agent skill from tetherto/qvac. Plan and run local PR validation for tetherto/qvac PRs.
Qv PR Test fits situations like: invoking /qv-pr-test; tasks that involve Git worktrees.
Run `npx skills add tetherto/qvac --skill qv-pr-test -a claude-code`. Or copy the skill folder (.agents/skills/qv-pr-test in tetherto/qvac) into .claude/skills/qv-pr-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add tetherto/qvac --skill qv-pr-test -a codex`. Or copy the skill folder (.agents/skills/qv-pr-test in tetherto/qvac) into .agents/skills/qv-pr-test 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-pr-test -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-pr-test, .gemini/skills/qv-pr-test, .github/skills/qv-pr-test and .opencode/skills/qv-pr-test in your project.
Going by SKILL.md and its folder, Qv PR Test needs the command-line tools its instructions call (git, bun, npm, npx, node and gh). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use git, npm, npx and gh, 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 PR Test 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 4.2k tokens (SKILL.md is roughly 17k 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 PR Test: Squad Git Branching Workflow (microsoft/waza, 1.4k stars), Cabloy Worktree Environment (cabloy/cabloy, 982 stars), Move To Worktree (foyzulkarim/claude-lens, 250 stars) and Git PR Workflow (andymai/brepjs, 114 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 681 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.