Agent skill

QA Handoff

by joshukraine in joshukraine/dotfiles

Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites.

MITAuto-check passedFrontend & Design

Install QA Handoff

skills CLI
$ npx skills add joshukraine/dotfiles --skill qa-handoff -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install joshukraine/dotfiles qa-handoff --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/joshukraine/dotfiles.git skills-src && mkdir -p .claude/skills && cp -r skills-src/claude/.claude/skills/qa-handoff .claude/skills/qa-handoff && rm -rf skills-src

Use ~/.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/

Facts

Skill name
qa-handoff
GitHub stars
429
Token cost
~4.1k tokens
SKILL.md length
2,230 words
Files
3
Skills in repo
24
Repo updated
First seen
Licence
MIT

At a glance

Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites.

  • Works in 6 steps: Read your mode's template (this skill's… → Inline the shared house style — copy its… → Strip every instructional comment from… → …
  • Tasks that involve Static sites and blogs
  • SKILL.md covers Step 0: Detect the project type, Context, Output Format and Save Location, plus 2 more sections
  • Calls rails, git and gh; reaches github.com

What it does

QA Handoff is an agent skill from joshukraine/dotfiles. Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites. --publish uploads the HTML to the project's configured QA host.

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files.

It sits in Frontend & Design, covering Static sites and blogs, Backend development and HTML artifacts. The repository describes itself as: :roundpushpin: My dotfiles for macOS using Neovim, Zsh, and Ghostty + Tmux. The licence is MIT.

When your agent uses it

  • Tasks that involve Static sites and blogs
  • Tasks that involve Backend development
  • Tasks that involve HTML artifacts

Example prompts

  • “/qa-handoff”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Read your mode's template (this skill's directory) for the structure and ../_shared/house-style.html for the look. The template's head…
  2. Inline the shared house style — copy its block in place of the <!-- HOUSE STYLE ... --> marker in , and its block in place of the second…
  3. Strip every instructional comment from the output (the head how-to block and the body notes). The artifact must be clean. (HTML comments…
  4. Resolve the QA report URL ({{REPORT_URL}}). Find the project's GitHub repo via gh repo view --json nameWithOwner --jq .nameWithOwner. Look…
  5. Fill the metadata tokens: {{PROJECT}}, {{TITLE}} (e.g. Phase N: Phase Title), {{DATE}}, {{BRANCH}}, {{COMMIT}} (short SHA from HEAD)…
  6. Make every real command and URL the tester will paste a click-to-copy control: VALUE.

What it can do on your machine

Read from SKILL.md and the folder at commit b59ad5b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • rails
    • git
    • gh
    • bundle

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • github.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

QA Handoff loads about 4.1k tokens when it runs. Until then it costs about 46 tokens; SKILL.md has 2,230 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~46
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from joshukraine/dotfiles at commit b59ad5b, republished under its MIT licence (© joshukraine). 2,230 words, ~4,085 tokens.

Download SKILL.mdSave it as .claude/skills/qa-handoff/SKILL.md (or your agent's skills folder). This skill also uses 2 other files; get the full folder from GitHub.
name
qa-handoff
description
Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites. --publish uploads the HTML to the project's configured QA host.
disable-model-invocation
true
argument-hint
[--publish] [--pr <N>]

QA Handoff

You are a senior developer preparing a hands-on testing guide for a QA colleague. Your colleague understands the product but is NOT tracking implementation details, architecture decisions, or code-level rationale. Write for someone who needs a clear, step-by-step guide to exercise the new work and find gaps in behavior and UX.

Step 0: Detect the project type

Pick the mode from what's in the repo:

  • Rails app — a Gemfile plus config/application.rb or bin/rails. Follow the Rails path (template template.html).
  • Static site (Hugo) — a Hugo config (hugo.toml / hugo.yaml / hugo.json, or config.toml / config/_default/) with a content/ directory (or another static-site generator). Follow the Static-site path (template template-static.html).
  • Neither — tell the user this skill targets Rails apps and static sites, and stop.

Both paths produce the same kind of artifact — a single self-contained HTML page built from the shared house style and shipped through the shared publish pipeline. They differ only in which template and section content they use.

Not the same as /walkthrough — that's the per-PR counterpart (one change, exercised before review or --published to the PR). This is the broad, committed QA guide for a whole phase.

Context

Both paths: Read the project's CLAUDE.md (project name, any audience/viewport guidance, the ## QA Publish Target block) and docs/prd/ROADMAP.md if present (current phase). Check docs/debriefs/full/ for the most recent debrief; if one covers the current work, reuse its Product Tour as the basis for the walkthrough (strip rationale, keep the actions and expected behaviors). Otherwise build the walkthrough from recent git history.

Rails path also: Read db/seeds.rb to identify test accounts and credentials (reference them exactly). Review the Gemfile and recent migrations for setup the tester needs.

Static-site path also: Identify the deploy-preview URL the tester should open — a Netlify deploy preview is the typical source; if it isn't obvious from CLAUDE.md or the repo, ask the user. Note the local preview command (hugo server) and whether the preview is access-gated. Check the Hugo config for multiple languages (languages / defaultContentLanguage, an i18n/ dir, or content/<lang>/) — if multilingual, include the Languages & Translations section. Identify forms and external integrations and their backends (Netlify Forms, an external API, a separate app), and note any restricted to certain domains (e.g. a CORS allowlist) so the guide can tell testers which environment to use. For URL continuity, remember Hugo migrations often preserve old paths by slug-matching rather than redirect maps — check both that preserved URLs still resolve and that removed URLs are intentionally gone.

Output Format

Render the handoff as a single self-contained HTML page using the shared house style — not a Markdown document. Use the template for your mode:

  • Rails: template.html
  • Static site: template-static.html
Rendering
  1. Read your mode's template (this skill's directory) for the structure and ../_shared/house-style.html for the look. The template's head comment documents every token.
  2. Inline the shared house style — copy its <style> block in place of the <!-- HOUSE STYLE ... --> marker in <head>, and its <script> block in place of the second marker before </body>. The output must be a single self-contained .html (no external assets). Do not link a stylesheet.
  3. Strip every instructional comment from the output (the head how-to block and the body notes). The artifact must be clean. (HTML comments do not nest, so a leftover one can break rendering, not just clutter it.) Static template only: delete any optional section that doesn't apply — the Languages & Translations section for a single-language site, and the Key Flows & Forms section for a purely informational site — along with its TOC entry.
  4. Resolve the QA report URL ({{REPORT_URL}}). Find the project's GitHub repo via gh repo view --json nameWithOwner --jq .nameWithOwner. Look in .github/ISSUE_TEMPLATE/ for a QA template (filename matching qa, case-insensitive — prefer YAML issue forms over plain Markdown). Build the URL:
    • QA template found: https://github.com/<owner>/<repo>/issues/new?template=<filename>. Leave the title blank so the template's own placeholder guides the tester.
    • No QA template: https://github.com/<owner>/<repo>/issues/new.
    • No GitHub remote: omit the CTA. Replace the Feedback section's button paragraph with a one-line note pointing at the project's actual tracker.
  5. Fill the metadata tokens: {{PROJECT}}, {{TITLE}} (e.g. Phase N: Phase Title), {{DATE}}, {{BRANCH}}, {{COMMIT}} (short SHA from HEAD), {{REPORT_URL}} (step 4); then the mode-specific one — Rails: {{DEBRIEF_REF}} (path to the related debrief, or N/A); static: {{PREVIEW_URL}} (the deploy-preview URL).
  6. Make every real command and URL the tester will paste a click-to-copy control: <button type="button" class="copy" data-copy="VALUE">VALUE</button>.

Credentials. The handoff HTML is a single file that is both committed and (with --publish) uploaded to a public QA host. A login may be a click-to-copy control only when it is a reserved, non-routable example identity: an RFC 2606 reserved domain (example.com/.net/.org) or the .example TLD, with any password an obviously-fake seed value (e.g. password). Such fakes are documentation, not credentials. Any real or real-looking login (real domain, actual person, live tenant, real password/token) must be a plain placeholder (<code>&lt;your-admin-email&gt;</code>), never a copy control; add a one-line note (Rails local: seeded logins from db/seeds.rb; production: your own account). Static sites usually have no logins at all — but if the deploy preview is password-gated, treat that access the same way: a placeholder plus a one-line note, never a real secret. Never publish a real secret in any form.

Section content — Rails path

Fill each token with the content below.

What's New ({{WHATS_NEW}}) — a plain-language summary of what was built. 2–4 short paragraphs; connect to the roadmap. No file paths, class names, or architecture jargon.

Getting Current ({{SETUP}}) — exact setup steps, each command a copy control: pull/install (git pull, bundle install, bin/rails db:migrate, bin/rails db:seed), whether a full bin/rails db:reset is needed, new gems/system packages, new env vars or credentials, and the command to start the app plus the URL to confirm it boots. List specifics — never "some dependencies changed." Say "None" where a category is unchanged.

Guided Walkthrough ({{WALKTHROUGH}}) — one <div class="story"> per scenario, in order. Each: a descriptive .story-head with a .role-pill for the user type; a click-to-copy login when it is a reserved-example identity, otherwise a placeholder (see Credentials), plus a copyable starting URL; extremely literal numbered steps; and a .expect expected result precise enough that a deviation is obvious. Include at least one scenario per affected role. Read CLAUDE.md for audience/viewport guidance and add matching scenarios.

Exploratory Testing ({{EXPLORATORY}}) — an interactive <ul class="checklist">; each item <li><label><input type="checkbox" data-check="..."> ...</label></li>. Draw from debrief-flagged thin coverage, permission boundaries (accessing another user's data, role escalation), responsive/mobile checks, and edge cases a developer might skip. Make each item self-describing.

Test Suite ({{TESTS}}) — commands to run the full suite and the targeted files most relevant to the new work, each a copy control. Note any known skips or expected failures.

Feedback — built into the template: a CTA button linking to the QA issue form via {{REPORT_URL}}. Do not reconstruct the form.

Show full SKILL.md (1,112 more words)Show less
Section content — Static-site path

Fill each token with the content below. The checklist sections use an interactive <ul class="checklist"> (each item <li><label><input type="checkbox" data-check="..."> ...</label></li>).

What's New ({{WHATS_NEW}}) — a plain-language summary of what changed on the site (new or updated pages, redesigns, migrated content). 2–4 short paragraphs connecting to the goal. No jargon.

Where to Test ({{WHERE}}) — the deploy-preview URL as a copy control (a Netlify deploy preview is typical). Add the local option for testers who clone: git pull, then hugo server, and the localhost URL — each a copy control. If the preview is access-gated, add a one-line preview-access note (placeholder only — see Credentials). Call out environment limits: some checks cannot be done on a per-PR deploy preview — an external API with a CORS allowlist, or form-email notifications that only fire in production. For each, say which environment it must be done in (per-PR preview vs. branch deploy vs. production) so testers don't file false "broken form" reports.

Guided Walkthrough ({{WALKTHROUGH}}) — one <div class="story"> per key page or flow, in reading order. The .role-pill is the visitor type (Visitor / Donor / Mobile visitor). Give a copyable starting URL (preview URL + path), literal numbered steps, and a .expect result. Cover the new/changed pages; add a mobile scenario per any CLAUDE.md viewport guidance.

Content & Links ({{CONTENT}}) — checklist: copy accuracy (no lorem/placeholder; names, dates, figures, and contact info correct); every nav/footer/CTA link resolves; navigation works (menu, breadcrumbs, footer). URL continuity from the old site: Hugo migrations often preserve URLs by slug-matching rather than redirect maps, so check both directions — (a) every preserved old URL still resolves at the same path, and (b) every removed old URL is intentionally gone (redirect it if it was indexed/linked, or accept the 404).

Languages & Translations ({{I18N}}) — optional — include only for multilingual sites; delete the section and its TOC entry for a single-language site. Checklist: the language switcher works and appears only where a translation actually exists (not on single-language pages); each language's URLs resolve (e.g. / and /en/...) and routes with no translation 404 intentionally rather than rendering a broken page; hreflang tags are present linking the language variants; translated pages show the target language throughout (no silent fallback to the default language); language-specific metadata (og:locale) is correct.

Key Flows & Forms ({{FLOWS}}) — optional — include for sites with conversion/action paths; delete the section and its TOC entry for a purely informational site. Exercise the site's primary actions end to end as a checklist:

  • Donations (when present — first-class for donor-giving sites): each give route works (mail-a-check address correct; PayPal link lands on the right account; any new platform flow completes).
  • Forms by backend: list each form with its backend, where it can actually be tested (see Where to Test), and its success UX (often an inline message rather than a redirect). Verify each confirmation.
  • External-app handoffs: links/CTAs that hand off to a separate app or domain land correctly.
  • Disabled/empty states: if a form or flow can be toggled off (out-of-stock, closed), the off state replaces it cleanly.

Responsive & Visual ({{RESPONSIVE}}) — checklist: mobile/tablet/desktop layouts; images load and aren't distorted; logos, brand colors, favicon, and any PWA manifest render; no horizontal overflow; text readable; nav collapses correctly on small screens; no flash-of-unstyled-content (FOUC) on load, especially for sticky or scroll-reactive headers.

Meta & Sharing ({{META}}) — checklist: page titles and meta descriptions present and accurate; social share cards (og:image, og:title, twitter:*) render when a page is shared; canonical URLs correct.

Accessibility ({{A11Y}}) — checklist: images have meaningful alt text in the site's language(s); color contrast is sufficient; keyboard navigation reaches all interactive elements with a visible focus state; heading order is logical. Spot checks, not an exhaustive audit.

Build & Health ({{BUILD}}) — commands as copy controls: a clean production build (hugo --gc --minify) with no errors or warnings. A green build is not enough — also verify: interactive JS still works after minification (tree-shaking can silently drop handlers a dev build kept, shipping a clean build with broken forms); the pinned Hugo version matches across deploy config and CI (netlify.toml, .github/workflows/); on the preview, no browser console errors and no mixed-content (all https). Actual broken-link crawling stays out of scope — Content & Links covers links by hand.

Feedback — built into the template: a CTA button linking to the QA issue form via {{REPORT_URL}}. Do not reconstruct the form.


Save Location

Save the completed handoff to:

text
docs/qa-handoffs/YYYY-MM-DD-[brief-topic].html

Create docs/qa-handoffs/ if it doesn't exist; use the same date-and-slug convention as debriefs. After saving, open it so the result is in front of you (single self-contained file — instant, no server):

bash
open docs/qa-handoffs/YYYY-MM-DD-[brief-topic].html

Then tell the user where the file is and how the tester should use it: Rails — follow Getting Current, work the walkthrough, tick the exploratory checklist; static — open the deploy-preview URL from Where to Test, work the walkthrough, tick the checklists. In both cases, click File a QA report for any findings so it lands in the tracker.

Publishing for remote testers (--publish)

A remote tester who is not cloning the repo needs a hosted copy. With --publish, the skill uploads the saved HTML to the project's configured QA host so the tester can open it from a URL. (This is unchanged across modes — the publish pipeline is framework-agnostic.)

  1. Generate and save the HTML locally first (the steps above). --publish operates on the saved file; it does not regenerate it.

  2. Build a one-line blurb file at tmp/qa-handoff-comment.md describing what is inside the HTML so a PR reader has context. One short paragraph — the HTML is the artifact, not a Markdown twin.

  3. Confirm before publishing. This is outward-facing: it pushes a file to a shared repo and, when --pr <N> is given, posts a PR comment. Get explicit approval first.

  4. Call the shared publish pipeline:

    bash
    ~/.claude/skills/_shared/publish-artifact.sh \
      --html docs/qa-handoffs/YYYY-MM-DD-[brief-topic].html \
      --label "QA handoff: <Title>" \
      [--pr <N>] \
      [--comment-body tmp/qa-handoff-comment.md]

    Behaviour:

    • Target declared, no --pr → uploads the HTML, prints the live Pages URL. Share that URL with the tester.
    • Target declared, --pr <N> given → also posts a PR comment with the live link above the blurb.
    • Target undeclared → prints a warning and stays local. No PR comment (--md-fallback-only is not used here because the HTML is the artifact — a Markdown twin would lose the click-to-copy controls and the interactive checklists that make the handoff useful).
  5. Report back to the user with the Pages URL (and PR-comment confirmation when applicable).

Tone & Approach

  • Be friendly and practical, not formal. The reader is a colleague, not a client.
  • Err on the side of over-explaining steps rather than under-explaining. The goal is zero ambiguity in the walkthrough.
  • If you discover something during QA handoff generation that looks broken or concerning, flag it clearly as a note to the developer, not as something for the tester to fix.

© joshukraine, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 2 other files in claude/.claude/skills/qa-handoff of joshukraine/dotfiles.

  • SKILL.md
  • template-static.html
  • template.html

Open the folder on GitHubat commit b59ad5b

Compare with similar skills

QA Handoff 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.

QA Handoff compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
QA Handoff this skilljoshukraine/dotfiles429—~4.1kAutomated safety check: PassMIT
Paperclip Pagepaperclipai/paperclip99k—~1kAutomated safety check: PassMIT
Portable Text Serializationsanity-io/agent-toolkit1881 repos~1.1kAutomated safety check: PassMIT
MCP Developmentcoollabsio/coolify63k1 repos~949Automated safety check: PassMIT
Solar Iconssaoudi-h/solar-icons190—~2.1kAutomated safety check: PassMIT
Vue Component Developmentgdarko/laravel-vue-starter145—~1.1kAutomated safety check: PassMIT

Similar skills

  • Paperclip Page

    paperclipai/paperclip

    Publish static HTML pages and asset folders to the Paperclip S3/CloudFront page host.

    99k GitHub stars~1k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Portable Text Serialization

    sanity-io/agent-toolkit

    Official

    Render and serialize Portable Text to React, Svelte, Vue, Astro, HTML, Markdown, and plain text.

    188 GitHub starsUsed in 1 repo~1.1k tokens
    Frontend & DesignAuto-check passed
  • MCP Development

    coollabsio/coolify

    A skill your agent uses for Laravel MCP development. An agent skill from coollabsio/coolify.

    63k GitHub starsUsed in 1 repo~949 tokens
    Frontend & DesignAuto-check passed
  • Solar Icons

    saoudi-h/solar-icons

    Add Solar Icons via @solar-icons/cli to any React, Vue, Svelte, Solid, Angular, React Native, Nuxt, Static, vanilla JS, or Laravel Blade project.

    190 GitHub stars~2.1k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Vue Component Development

    gdarko/laravel-vue-starter

    Activate when creating or modifying Vue 3 components, pages, layouts, stores, or services in the frontend.

    145 GitHub stars~1.1k tokensUpdated 6 mo ago
    Frontend & DesignAuto-check passed
  • Nitro Kit UI

    mikker/nitro_kit

    Build or refactor Rails interfaces with Nitro Kit 2's Phlex components, layouts, blocks, FormBuilder, and theme tokens.

    105 GitHub stars~2.1k tokensUpdated 2 days ago
    Frontend & DesignAuto-check passed

More from joshukraine/dotfiles

All 24 skills in this repo
  • Todoist CLI

    joshukraine/dotfiles

    Manage Todoist tasks, projects, labels, filters, sections, comments, reminders, and workspaces via the td CLI.

    429 GitHub starsUsed in 1 repo~6.9k tokens
    Auto-check passed
  • Autopilot Triage

    joshukraine/dotfiles

    Vet open issues for autonomous resolution and queue the qualifying ones with the autopilot-queued label — the start-of-day "fill the queue" half of the triage → run split.

    429 GitHub stars~2.1k tokensUpdated 3 days ago
    Auto-check passed
  • Checkpoint

    joshukraine/dotfiles

    Quick 2-minute status update on current phase, completed work, blockers, and health check.

    429 GitHub stars~600 tokensUpdated 3 days ago
    Auto-check passed
  • Create PR

    joshukraine/dotfiles

    Create a pull request with auto-generated description, issue linking, ROADMAP updates, and PR-metadata validation.

    429 GitHub stars~1.3k tokensUpdated 3 days ago
    Auto-check passed
  • Debrief

    joshukraine/dotfiles

    Detailed technical walkthrough covering architecture, test coverage, product tour, and key design decisions.

    429 GitHub stars~2.5k tokensUpdated 3 days ago
    Auto-check passed
  • Drift Check

    joshukraine/dotfiles

    Pre-PR advisory check for deviations from the project spec. An agent skill from joshukraine/dotfiles.

    429 GitHub stars~1.2k tokensUpdated 3 days ago
    Auto-check passed

Questions about QA Handoff

What does QA Handoff do?

Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites. QA Handoff is an agent skill from joshukraine/dotfiles. Generate a hands-on QA testing guide as a self-contained HTML page — for Rails apps or static (Hugo) sites.

When should I use QA Handoff?

QA Handoff fits situations like: tasks that involve Static sites and blogs; tasks that involve Backend development; tasks that involve HTML artifacts.

How do I install QA Handoff in Claude Code?

Run `npx skills add joshukraine/dotfiles --skill qa-handoff -a claude-code`. Or copy the skill folder (claude/.claude/skills/qa-handoff in joshukraine/dotfiles) into .claude/skills/qa-handoff in your project. Claude Code loads it when a task matches its description.

How do I install QA Handoff in Codex?

Run `npx skills add joshukraine/dotfiles --skill qa-handoff -a codex`. Or copy the skill folder (claude/.claude/skills/qa-handoff in joshukraine/dotfiles) into .agents/skills/qa-handoff in your project. Codex loads it when a task matches its description.

Can I use QA Handoff in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add joshukraine/dotfiles --skill qa-handoff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/qa-handoff, .gemini/skills/qa-handoff, .github/skills/qa-handoff and .opencode/skills/qa-handoff in your project.

What does QA Handoff need to run?

Going by SKILL.md and its folder, QA Handoff needs the command-line tools its instructions call (rails, git, gh and bundle).

Does QA Handoff access the network?

SKILL.md names 1 domain. In commands or code: github.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is QA Handoff safe to install?

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.

What licence does QA Handoff use?

QA Handoff is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does QA Handoff use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to QA Handoff?

Skills that share tags, products or a category with QA Handoff: Paperclip Page (paperclipai/paperclip, 99k stars), Portable Text Serialization (sanity-io/agent-toolkit, 188 stars), MCP Development (coollabsio/coolify, 63k stars) and Solar Icons (saoudi-h/solar-icons, 190 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains QA Handoff?

joshukraine (a GitHub user) maintains it in joshukraine/dotfiles, which has 429 GitHub stars. The repository holds 24 skills in this directory. The repository was last updated on October 6, 2026.

Source: joshukraine/dotfiles on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.