/testing-orcaq
OrcaQ-specific testing guide. Use when asked to run, debug, or write tests for OrcaQ. Covers all bun test:* scripts, fixture profiles, Vitest projects (unit / nuxt / integration), and Playwright DB projects. Load BEFORE suggesting any test command so the agent uses the correct
$ npx -y skills add cin12211/orca-q --skill testing-orcaq --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/testing-orcaq
Context preview
The summary Claude sees to decide when to auto-load this skill.
OrcaQ-specific testing guide. Use when asked to run, debug, or write tests for OrcaQ. Covers all bun test:* scripts, fixture profiles, Vitest projects (unit / nuxt / integration), and Playwright DB projects. Load BEFORE suggesting any test command so the agent uses the correct
SKILL.md
testing-orcaq.SKILL.mdname: testing-orcaq
description: >
OrcaQ-specific testing guide. Use when asked to run, debug, or write tests
for OrcaQ. Covers all bun test:* scripts, fixture profiles, Vitest projects
(unit / nuxt / integration), and Playwright DB projects. Load BEFORE
suggesting any test command so the agent uses the correct script and profile.
tools: Read, Edit, Bash, Grep, Glob
category: testing
color: blue
displayName: OrcaQ Testing
applyTo: 'test/**,scripts/test-services/**,.github/workflows/**'
OrcaQ Testing — Agent Skill
> Read `docs/TESTING_GUIDE.md` for the full reference. This skill encodes the > decision rules so you choose the right command without checking every time.
---
1. Decision Tree — Which Command?
Is the test purely logic / no DB / no browser?
└─ YES → bun test:unit
└─ NO →
Is it a Vue component test (nuxt env)?
└─ YES → bun test:nuxt
└─ NO →
Is it an API / server integration test?
└─ YES →
Are fixtures already running?
└─ YES → bun test:api:raw
└─ NO → bun test:api ← auto-provisions + cleans up
└─ NO →
It is a Playwright E2E test.
Do you need a specific DB only?
└─ YES → bash scripts/test-services/run-tests.sh --fixtures=<profile> -- playwright test --project <db>
└─ NO → bun test:e2e ← all fixtures, all projects---
2. npm Script Reference
| Script | What it does | Needs Docker? | | ------------------------ | ----------------------------------------------- | ------------- | | `bun test:all` | All Vitest suites (unit + nuxt + integration) | No | | `bun test:unit` | Unit tests only (`test/unit/`) | No | | `bun test:nuxt` | Nuxt component tests (`test/nuxt/`) | No | | `bun test:api` | Integration tests — auto starts all fixtures | Yes | | `bun test:api:raw` | Integration tests — fixtures must already be up | Yes | | `bun test:e2e` | Playwright — auto starts all fixtures | Yes | | `bun test:e2e:raw` | Playwright — fixtures must already be up | Yes | | `bun test:coverage` | Full coverage report | No | | `bun test:watch` | Watch mode (development) | No | | `bun test:fixtures:up` | Start all Docker fixtures | Yes | | `bun test:fixtures:down` | Stop and remove all Docker fixtures | Yes |
---
3. Vitest Projects
| Project flag | Files | Notes | | ----------------------- | ------------------------------- | ------------------------ | | `--project unit` | `test/unit/**/*.{test,spec}.ts` | Pure logic, no framework | | `--project nuxt` | `test/nuxt/**/*.{test,spec}.ts` | Vue component tests | | `--project integration` | `test/api/**/*.{test,spec}.ts` | Requires all DB fixtures |
Run one file:
bun vitest --run test/unit/core/helpers/myHelper.spec.ts
---
4. Playwright Projects & Fixture Profiles
| Playwright project | Fixture profile to use | | ------------------ | ---------------------------------- | | `common` | `all` | | `postgres` | `postgres` | | `mysql` | `mysql` | | `mariadb` | `mariadb` | | `redis` | `redis` | | `sqlite` | `sqlite` | | `oracle` | manual (no Docker compose profile) |
Run isolated by DB:
bash scripts/test-services/run-tests.sh --fixtures=postgres -- playwright test --project postgres
bash scripts/test-services/run-tests.sh --fixtures=redis -- playwright test --project redis
bash scripts/test-services/run-tests.sh --fixtures=sqlite -- playwright test --project sqlite
---
5. Fixture Profile Reference
| Profile | Containers started | | ---------- | ---------------------------- | | `postgres` | PostgreSQL 16 only | | `mysql` | MySQL 8.4 only | | `mariadb` | MariaDB 11.4 only | | `sql` | PostgreSQL + MySQL + MariaDB | | `redis` | Redis 7.4 only | | `sqlite` | File prep only (no Docker) | | `all` | All of the above | | `none` | Nothing |
Manual fixture control:
bash scripts/test-services/start-fixtures.sh --profile <profile>
bash scripts/test-services/stop-fixtures.sh --profile <profile>
---
6. Key Env Vars
All use `ORCAQ_` prefix. Defaults are set by `start-fixtures.sh` automatically.
ORCAQ_POSTGRES_PORT=5432 ORCAQ_POSTGRES_DATABASE=pagila
ORCAQ_MYSQL_PORT=3306 ORCAQ_MYSQL_DATABASE=sakila
ORCAQ_MARIADB_PORT=3307 ORCAQ_MARIADB_DATABASE=sakila
ORCAQ_REDIS_PORT=6379
ORCAQ_KEEP_FIXTURES=1 # keep containers alive after run
ORCAQ_FIXTURE_PROFILE=all # override profile via env
---
7. Fast Iteration Pattern
When iterating on integration or E2E tests, start fixtures once and reuse:
bun test:fixtures:up # 1× — start all containers
bun test:api:raw # run repeatedly
# or
bun test:e2e:raw # run repeatedly
bun test:fixtures:down # done
---
8. Rules the Agent Must Follow
1. **Never run `test:api` or `test:e2e` when fixtures are already up** — use the `:raw` variant to avoid double-provisioning. 2. **Never start all fixtures to test a single DB** — use the matching profile. 3. **Always run `bun test:unit` after any source change** to verify no regression before run
Read more
name: testing-orcaq description: > OrcaQ-specific testing guide. Use when asked to run, debug, or write tests for OrcaQ. Covers all bun test:* scripts, fixture profiles, Vitest projects (unit / nuxt / integration), and Playwright DB projects. Load BEFORE suggesting any test command so the agent uses the correct script and profile. tools: Read, Edit, Bash, Grep, Glob category: testing color: blue displayName: OrcaQ Testing applyTo: 'test/**,scripts/test-services/**,.github/workflows/**'
OrcaQ Testing — Agent Skill
> Read `docs/TESTING_GUIDE.md` for the full reference. This skill encodes the > decision rules so you choose the right command without checking every time.
---
1. Decision Tree — Which Command?
Is the test purely logic / no DB / no browser?
└─ YES → bun test:unit
└─ NO →
Is it a Vue component test (nuxt env)?
└─ YES → bun test:nuxt
└─ NO →
Is it an API / server integration test?
└─ YES →
Are fixtures already running?
└─ YES → bun test:api:raw
└─ NO → bun test:api ← auto-provisions + cleans up
└─ NO →
It is a Playwright E2E test.
Do you need a specific DB only?
└─ YES → bash scripts/test-services/run-tests.sh --fixtures=<profile> -- playwright test --project <db>
└─ NO → bun test:e2e ← all fixtures, all projects---
2. npm Script Reference
| Script | What it does | Needs Docker? | | ------------------------ | ----------------------------------------------- | ------------- | | `bun test:all` | All Vitest suites (unit + nuxt + integration) | No | | `bun test:unit` | Unit tests only (`test/unit/`) | No | | `bun test:nuxt` | Nuxt component tests (`test/nuxt/`) | No | | `bun test:api` | Integration tests — auto starts all fixtures | Yes | | `bun test:api:raw` | Integration tests — fixtures must already be up | Yes | | `bun test:e2e` | Playwright — auto starts all fixtures | Yes | | `bun test:e2e:raw` | Playwright — fixtures must already be up | Yes | | `bun test:coverage` | Full coverage report | No | | `bun test:watch` | Watch mode (development) | No | | `bun test:fixtures:up` | Start all Docker fixtures | Yes | | `bun test:fixtures:down` | Stop and remove all Docker fixtures | Yes |
---
3. Vitest Projects
| Project flag | Files | Notes | | ----------------------- | ------------------------------- | ------------------------ | | `--project unit` | `test/unit/**/*.{test,spec}.ts` | Pure logic, no framework | | `--project nuxt` | `test/nuxt/**/*.{test,spec}.ts` | Vue component tests | | `--project integration` | `test/api/**/*.{test,spec}.ts` | Requires all DB fixtures |
Run one file:
bun vitest --run test/unit/core/helpers/myHelper.spec.ts
---
4. Playwright Projects & Fixture Profiles
| Playwright project | Fixture profile to use | | ------------------ | ---------------------------------- | | `common` | `all` | | `postgres` | `postgres` | | `mysql` | `mysql` | | `mariadb` | `mariadb` | | `redis` | `redis` | | `sqlite` | `sqlite` | | `oracle` | manual (no Docker compose profile) |
Run isolated by DB:
bash scripts/test-services/run-tests.sh --fixtures=postgres -- playwright test --project postgres bash scripts/test-services/run-tests.sh --fixtures=redis -- playwright test --project redis bash scripts/test-services/run-tests.sh --fixtures=sqlite -- playwright test --project sqlite
---
5. Fixture Profile Reference
| Profile | Containers started | | ---------- | ---------------------------- | | `postgres` | PostgreSQL 16 only | | `mysql` | MySQL 8.4 only | | `mariadb` | MariaDB 11.4 only | | `sql` | PostgreSQL + MySQL + MariaDB | | `redis` | Redis 7.4 only | | `sqlite` | File prep only (no Docker) | | `all` | All of the above | | `none` | Nothing |
Manual fixture control:
bash scripts/test-services/start-fixtures.sh --profile <profile> bash scripts/test-services/stop-fixtures.sh --profile <profile>
---
6. Key Env Vars
All use `ORCAQ_` prefix. Defaults are set by `start-fixtures.sh` automatically.
ORCAQ_POSTGRES_PORT=5432 ORCAQ_POSTGRES_DATABASE=pagila ORCAQ_MYSQL_PORT=3306 ORCAQ_MYSQL_DATABASE=sakila ORCAQ_MARIADB_PORT=3307 ORCAQ_MARIADB_DATABASE=sakila ORCAQ_REDIS_PORT=6379 ORCAQ_KEEP_FIXTURES=1 # keep containers alive after run ORCAQ_FIXTURE_PROFILE=all # override profile via env
---
7. Fast Iteration Pattern
When iterating on integration or E2E tests, start fixtures once and reuse:
bun test:fixtures:up # 1× — start all containers bun test:api:raw # run repeatedly # or bun test:e2e:raw # run repeatedly bun test:fixtures:down # done
---
8. Rules the Agent Must Follow
1. **Never run `test:api` or `test:e2e` when fixtures are already up** — use the `:raw` variant to avoid double-provisioning. 2. **Never start all fixtures to test a single DB** — use the matching profile. 3. **Always run `bun test:unit` after any source change** to verify no regression before run
Repo: cin12211/orca-q
Other skills on orca-q.
- /accessibility-expert
WCAG 2.1/2.2 compliance, WAI-ARIA implementation, screen reader optimization, keyboard navigation, and accessibility testing expert. Use PROACTIVELY for accessibility violations, ARIA errors, keyboard navigation issues, screen reader compatibility problems, or accessibility
Open skill - /css-expert
CSS architecture and styling expert with deep knowledge of modern CSS features, responsive design, CSS-in-JS optimization, performance, accessibility, and design systems. Use PROACTIVELY for CSS layout issues, styling architecture, responsive design problems, CSS-in-JS
Open skill - /database-expert
Database performance optimization, schema design, query analysis, and connection management across PostgreSQL, MySQL, MongoDB, and SQLite with ORM integration. Use this skill for queries, indexes, connection pooling, transactions, and database architecture decisions.
Open skill - /documentation-expert
Expert in documentation structure, cohesion, flow, audience targeting, and information architecture. Use PROACTIVELY for documentation quality issues, content organization, duplication, navigation problems, or readability concerns. Detects documentation anti-patterns and
Open skill - /git-expert
Git expert with deep knowledge of merge conflicts, branching strategies, repository recovery, performance optimization, and security patterns. Use PROACTIVELY for any Git workflow issues including complex merge conflicts, history rewriting, collaboration patterns, and repository
Open skill - /graphify
Use for any question about a codebase, its architecture, file relationships, or project content — especially when graphify-out/ exists, where the question should be treated as a graphify query first. Turns any input (code, docs, papers, images, videos) into a persistent
Open skill

