speckit-companion: Skill for Claude Code

.claude/skills/release-qa/SKILL.md

release-qa is a skill for Claude Code from alfredoperez/speckit-companion. It costs 174 tokens per session (7,634 once invoked), scanned C, original, MIT.

A release-quality check for SpecKit Companion on a real Mac. It turns changed files into a checklist, runs automated checks, and uses desktop and browser checks without editing the repository.

In plain words
What is it for?
It helps validate changed application surfaces, inspect VS Code and browser behavior, create a throwaway package for testing, and produce release results.
Why use it?
It separates automated testing from visual checks and records failures as release fixes while keeping the source repository unchanged.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions Claude Code.

This is alfredoperez/speckit-companion's own configuration. It tells Claude Code how to work on speckit-companion itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything speckit-companion configures →

Needs its repository: it runs a file that does not travel with it, so clone the repository first. The line is node tooling/scripts/desktop-check.mjs --theme dark --only sidebar-panes,narrow-panel-spec,narrow-panel-tasks,nav-n7 >> "$RESULTS/auto/check-desktop.log" 2>&1.

Reuse

Borrowing it

Nothing to install: this file belongs to alfredoperez/speckit-companion. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/alfredoperez/speckit-companion/main/.claude/skills/release-qa/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/alfredoperez/speckit-companion

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for release-qa

README.md
[![agentmods](https://agentmods.dev/badge/skills/alfredoperez/speckit-companion/release-qa/github.svg)](https://agentmods.dev/skills/alfredoperez/speckit-companion/release-qa)
Your own site
<a href="https://agentmods.dev/skills/alfredoperez/speckit-companion/release-qa"><img src="https://agentmods.dev/badge/skills/alfredoperez/speckit-companion/release-qa/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for release-qa

Your own site · 80×15
<a href="https://agentmods.dev/skills/alfredoperez/speckit-companion/release-qa"><img src="https://agentmods.dev/badge/skills/alfredoperez/speckit-companion/release-qa.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 174 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 7,634 The whole file, excluding the scripts and references it only reads on demand.
Security scan C 1 finding. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00174 $0.07634
Opus 5.5 $0.00070 $0.03054
Sonnet 5.5 $0.00035 $0.01527
Haiku 4.5 $0.00017 $0.00763

Measured 11d ago against content hash 6bb516918889, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade C, and why

release-qa scanned grade C with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.

The scan reads SKILL.md. This mod also ships 14 executable files (canvas-harness/bootstrap.mjs, canvas-harness/canvas-checks.sh, canvas-harness/checks.mjs, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

- [ ] Keep `$SANDBOX` until the report's findings are triaged, then `rm -rf "$SANDBOX" "$SANDBOX-terminal" "$STOCK"`
.claude/skills/release-qa/SKILL.md · 341 lines

How it starts

The opening of the file, as written. The whole thing — 341 lines — stays where its author put it; the contents beside it link to each section on GitHub.

QA release

One run per release, never per ticket, and issue-agnostic: it reads what is being released, not a ticket list. Claude Code runs this skill on the Mac and does every bit of setup, typing, polling and timing. Claude Desktop only clicks and looks, from a handoff Claude Code writes: its Bash is a Linux sandbox with no code, specify or gh, and VS Code is click-only for it. QA never edits this repo; failures become fix candidates in the report. The repo stays untouched; the throwaway .vsix goes into the results folder.

/release-qa is the entry point, and step 3 of /release-loop. This skill holds the flow; surface-map.yml holds the checks; the helper scripts in this folder do the mechanical parts.

What each tool can do here

App Tier You can You cannot
Visual Studio Code click left-click, scroll, screenshot type, press keys, right-click, drag. So no command palette, no typing in the Create Spec box, no terminal input
GitHub Copilot full everything -
Browsers read look click. Used only to look at changed site pages

Consequences, designed in: settings are written to a file by Bash, the AI provider runs with auto-approve so its terminal never waits for a keypress, and the one piece of typing VS Code needs (the Create Spec description) is either handed to the user as a paste or done headless by Bash. Look with the computer-use screenshot; save evidence with shot.sh, which writes a real PNG to disk.

Variables

REPO=/Users/alfredoperez/dev/GitHub/speckit-companion
SKILL=$REPO/.claude/skills/release-qa
VAULT=$HOME/dev/GitHub/obsidian-vault
DATE=$(date +%Y-%m-%d)
RUN=$(date +%Y-%m-%d-%H%M)
. "$REPO/.claude/sandboxes-env.sh"     # SANDBOXES_REPO, SANDBOXES_DIR, EVIDENCE_DIR
SANDBOX=$SANDBOXES_DIR/e2e-$RUN
STOCK=$SANDBOX-stock
RESULTS=$EVIDENCE_DIR/$DATE-release-qa

Re-declare them in every Bash call; shell state does not persist. $RESULTS is per day: a second run the same day reuses it and its numbered shots. sandboxes-env.sh finds the sibling speckit-sandboxes checkout, whose recipes build every sandbox this skill uses: sandboxes land under its sandbox root ($SANDBOXES_DIR) and results under its evidence/ folder. qa-stage.sh names its own folders from the run name: $SANDBOXES_DIR/qa-<name>, qa-<name>-stock and $EVIDENCE_DIR/<date>-qa-<name>/.

Read the full file on GitHub · 341 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 11d ago Changed 6bb516918889
  2. 13d ago Changed 93e06b67bb64
  3. 14d ago Changed 57cc545e2dc8
  4. 16d ago Changed · -14 lines 37d1eaf25f73
  5. 18d ago Changed · +1 lines f1cd1e58012c
  6. 19d ago Changed · +1 lines 3311d9c24833
  7. 21d ago Changed · +4 lines 4bb88bf82704
  8. 23d ago First seen · 349 lines · 174 tokens per session scan C f8f49ffbf361

Subscribe to this mod's changes

release-qa is a skill published in the GitHub repository alfredoperez/speckit-companion (99 stars, last pushed 6d ago), licensed MIT. It adds 174 tokens to every session and 7,634 once invoked, about $0.0007 per session on Opus 5.5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-10-02.