# Release Smoke Test

Test an oh-my-opencode-slim release candidate or bugfix before publishing.

- Repository: https://github.com/alvinunreal/oh-my-opencode-slim (10062 stars)
- Category: Testing
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add alvinunreal/oh-my-opencode-slim --skill release-smoke-test -g -a claude-code -y`
Codex: `npx skills add alvinunreal/oh-my-opencode-slim --skill release-smoke-test -g -a codex -y`
Cursor: `npx skills add alvinunreal/oh-my-opencode-slim --skill release-smoke-test -g -a cursor -y`
Gemini CLI: `npx skills add alvinunreal/oh-my-opencode-slim --skill release-smoke-test -g -a gemini-cli -y`

## Description

Test an oh-my-opencode-slim release candidate or bugfix before publishing. Use when validating a packed plugin artifact, release branch, crash fix, OpenCode runtime compatibility, or model-specific smoke test such as OpenCode 1.17.11 message transform regressions.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Release Smoke Test

Use this skill to validate an `oh-my-opencode-slim` release candidate before
public npm publish. Test the packed artifact, not `@latest` and not the source
tree.

## Core Workflow

1. Start from the release-prep branch or commit.
2. Build and pack the candidate.
3. Install the tarball into a throwaway app.
4. Create an isolated OpenCode config pointing at the installed
   `node_modules/oh-my-opencode-slim/dist/index.js`.
5. Run `opencode debug config` and verify `plugin_origins` contains only the
   intended plugin when doing an isolation smoke.
6. Run non-pure `opencode run --print-logs --log-level DEBUG`.
7. Search isolated logs for the original crash signature.
8. Record exact artifact, model, OpenCode version, command shape, result, and
   limitations on the release issue or PR.

## Pack Candidate

Use a temp directory so release validation never depends on the local package
cache.

```bash
SMOKE=/tmp/oh-my-opencode-slim-release-smoke
rm -rf "$SMOKE"
mkdir -p "$SMOKE/pkg" "$SMOKE/app" "$SMOKE/home" "$SMOKE/xdg/opencode" "$SMOKE/run"

bun run build
npm pack --pack-destination "$SMOKE/pkg"
```

Install the tarball:

```bash
cd "$SMOKE/app"
bun init -y
bun add "$SMOKE/pkg"/oh-my-opencode-slim-*.tgz
node -p "require('./node_modules/oh-my-opencode-slim/package.json').version"
```

## Isolated Config

Write the minimal OpenCode config:

```bash
cat > "$SMOKE/xdg/opencode/opencode.json" <<EOF
{
  "model": "opencode/deepseek-v4-flash-free",
  "plugin": [
    "file://$SMOKE/app/node_modules/oh-my-opencode-slim/dist/index.js"
  ],
  "agent": {
    "orchestrator": {
      "model": "opencode/deepseek-v4-flash-free"
    }
  }
}
EOF
```

Use `env -i` for the cleanest smoke. This strips host `OPENCODE_*`, `ORCA_*`,
and project overlay variables that can silently add plugins or provider aliases.

```bash
env -i PATH="$PATH" HOME="$SMOKE/home" XDG_CONFIG_HOME="$SMOKE/xdg" \
  opencode debug config
```

Confirm:

The rest: https://github.com/alvinunreal/oh-my-opencode-slim/blob/HEAD/.agents/skills/release-smoke-test/SKILL.md
