test-setup — Claude Code skill: what it does, how to install
This skill sets up test infrastructure and CI with a tests directory, an engine test runner, and a GitHub Actions workflow. Use it before implementation starts.
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a claude-codeWhat test-setup does
The skill detects the project’s configured engine, prepares the tests/ layout, creates the relevant test runner setup, and adds .github/workflows/tests.yml. Its flow has six phases: inspect the current state, present a plan, create missing directories and files, configure CI/CD, seed a smoke test, and show a summary.
It does not overwrite existing test files. The force argument skips the early exit caused by an existing directory, but still creates missing files only. The skill asks for approval before file creation. If no engine is configured, it stops and redirects the agent to /setup-engine.
For Unity CI, the UNITY_LICENSE secret must be configured manually. Check that secret before running the workflow, since the generated CI setup depends on it.
What it helps with
- create the project’s
tests/directory structure - configure a test runner for the detected engine
- add a GitHub Actions workflow for tests on every push
- seed a smoke test before implementation begins
- inspect existing test infrastructure without overwriting files
Example prompts for the agent
- Run the
test-setupskill before the first sprint and show me the plan. - Run
test-setup force, create missing files only, and leave existing test files untouched. - Set up the project test infrastructure and
.github/workflows/tests.ymlwith thetest-setupskill.
How to install test-setup
1Skills CLI (Vercel)
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a claude-code2Manually: put the files in place
~/.claude/skills/test-setup/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/test-setup/
1Skills CLI (Vercel)
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a codex2Manually: put the files in place
.agents/skills/test-setup/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a cursor2Manually: put the files in place
.cursor/skills/test-setup/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install Donchitos/Claude-Code-Game-Studios test-setup2Manually: put the files in place
.github/skills/test-setup/SKILL.md1Skills CLI (Vercel)
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a gemini-cli2Platform CLI
gemini skills install https://github.com/Donchitos/Claude-Code-Game-Studios --path .claude/skills/test-setupManually: put the files in place
.devin/skills/test-setup/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about test-setup
How do I install test-setup in Claude Code?
Run these steps in order: npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a claude-code, run npx skills add Donchitos/Claude-Code-Game-Studios --skill test-setup -a claude-code again, then open ~/.claude/skills/test-setup/SKILL.md.
What does the test-setup skill do?
It prepares the project test setup with a tests/ directory, an engine test runner configuration, .github/workflows/tests.yml, and a smoke-test seed. It checks existing files and does not overwrite test files.
What happens when the project engine is not configured?
The skill stops and redirects the agent to /setup-engine. It does not guess the engine.
Source text
SKILL.md · MIT
---
name: test-setup
description: "Scaffold the test framework and CI — tests/ directory, engine test runner, GitHub Actions workflow. Once, before the first sprint."
argument-hint: "[force]"
user-invocable: true
allowed-tools: Read, Glob, Grep, Write, Bash(grep -q 'com.unity.test-framework' Packages/manifest.json), Bash(bash "*/.claude/skills/test-setup/../../hooks/yaml-helper.sh" resolve_config *)
model: sonnet
---
!`bash "${CLAUDE_SKILL_DIR}/../../hooks/yaml-helper.sh" resolve_config --keys automation,workflow,qa.level`
**Automation mode**: Resolve `modes.automation` (`project.local.yaml` →
`project.yaml` → default `collaborative`). Every `AskUserQuestion` call and
every file write follows `.claude/docs/automation-modes.md`
(collaborative asks always · guided major-only · autonomous logs and proceeds;
`automation_always_ask` categories always prompt).
# Test Setup
This skill scaffolds the automated testing infrastructure for the project.
It detects the configured engine, generates the appropriate test runner
configuration, creates the standard directory layout, and wires up CI/CD
so tests run on every push.
Run this once during the Technical Setup phase, before any implementation
begins. A test framework installed at sprint start costs 30 minutes.
A test framework installed at sprint four costs 3 sprints.
**Output:** `tests/` directory structure + `.github/workflows/tests.yml`
---
## Phase 1: Detect Engine and Existing State
**Read `references/1-detect.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 2: Present Plan
**Read `references/2-plan.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 3: Create Directory Structure
**Read `references/3-directories.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 4: Create CI/CD Workflow
**Read `references/4-ci.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 5: Create Smoke Test Seed
**Read `references/5-smoke-seed.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Phase 6: Post-Setup Summary
**Read `references/6-summary.md` now and follow it** — this phase's steps are in that file, not here. Read it again if the conversation was compacted or resumed during this phase.
## Collaborative Protocol
- **Never overwrite existing test files** — only create files that are missing.
If a test runner file exists, leave it as-is.
- **Always ask before creating files** — Phase 2 requires explicit approval.
- **Engine detection is non-negotiable** — if the engine is not configured,
stop and redirect to `/setup-engine`. Do not guess.
- **`force` flag skips the "already exists" early-exit but never overwrites.**
It means "create any missing files even if the directory already exists."
- For Unity CI, note that the `UNITY_LICENSE` secret must be configured
manually. Do not attempt to automate license management.
© Donchitos · MIT · Donchitos/Claude-Code-Game-Studios