---
name: waishnav-setup-qa
description: "Prepare the current DevSpace checkout or worktree for isolated local manual QA. Use when the user asks to set up QA, test a worktree locally, try an experiment in ChatGPT, or reset the local QA environment."
license: "MIT"
metadata:
  decimalai-skill-id: "e07369b6-36d2-4f57-ade6-7af6035d2cea"
  decimalai-version-id: "23f623b3-22d4-4116-b47f-2b4cd4942ad2"
  decimalai-version: "1"
  decimalai-body-sha256: "e203ebfe2ec5be97935d6aaf38f01dc447fc681864f7fe7a2fb73e1104b6db94"
  decimalai-name: "waishnav/setup-qa"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "testing"
  decimalai-source: "https://app.decimal.ai/s/waishnav-setup-qa@1/SKILL.md"
---
# Set up DevSpace manual QA

Use the current checkout or worktree. DevSpace's repo-local QA state lives in `.devspace-dev/` and should be used instead of the user's normal DevSpace state.

## Prepare the checkout

If this checkout has not been initialized for QA yet:

```bash
pnpm dev:seed
```

`dev:seed` forks the user's current DevSpace config, auth, local skills/agents, and SQLite state into this checkout's `.devspace-dev/` directory.

For ChatGPT app, widget, CSS, or icon changes, build the UI assets before testing:

```bash
pnpm build:app
```

The source server serves UI assets from `dist/ui`, not directly from `src/ui`.

## Run QA

Start the source server from this checkout with:

```bash
pnpm dev
```

It uses `.devspace-dev/config` and runs the source server under `tsx watch`, so server-side TypeScript changes reload automatically. Frontend changes still need another `pnpm build:app`.

The seeded QA state usually lets ChatGPT keep using the existing connector and tunnel while switching from the installed DevSpace server to this checkout's server.

For UI work, trigger a fresh tool result after rebuilding so ChatGPT loads the new hashed Vite assets.

## Reset the QA snapshot

Only when a fresh fork of the normal DevSpace state is needed:

```bash
pnpm dev:reset
```

Run this with `pnpm dev` stopped, then start `pnpm dev` again so the replaced snapshot is loaded. If the user's normal installation uses a custom `DEVSPACE_CONFIG_DIR`, preserve it while running `dev:seed` or `dev:reset`.
