verify
Drive Houston's TS host + web UI end-to-end to verify a change against the running system (host HTTP battery + Playwright…
Ship new Houston version. Bump semver across all packages, tag, push, let CI build + sign + notarize. STOP at draft — user publishes manually. Defaults patch bump. Minor needs explicit user permission.
$ npx -y skills add gethouston/houston --skill release --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/releaseContext preview
The summary Claude sees to decide when to auto-load this skill.
Ship new Houston version. Bump semver across all packages, tag, push, let CI build + sign + notarize. STOP at draft — user publishes manually. Defaults patch bump. Minor needs explicit user permission.
name: release description: Ship new Houston version. Bump semver across all packages, tag, push, let CI build + sign + notarize. STOP at draft — user publishes manually. Defaults patch bump. Minor needs explicit user permission.
Version. Bump. Tag. Push. Done.
All packages share ONE version. Every release bumps ALL.
./scripts/version.sh 0.3.X # bump all package.json + Cargo.toml # REQUIRED for any user-visible release: write the notes file BEFORE # tagging. CI reads `.github/release-notes/<version>.md` verbatim and # uses it as the GitHub release body. Skip only for trivial hotfixes # (CI then auto-generates from conventional-commit subjects, which is # weak signal for end users). See `.github/release-notes/README.md` # for what good notes look like + an example at `.../0.4.0.md`. $EDITOR .github/release-notes/0.3.X.md git add -A && git commit -m "release: v0.3.X" git tag v0.3.X git push origin main --tags
GH Actions (`.github/workflows/release.yml`) takes over: 1. Builds `houston-engine` for BOTH `aarch64-apple-darwin` AND `x86_64-apple-darwin` 2. Builds Tauri app w/ `--target universal-apple-darwin` (one fat `.app`) 3. Signs w/ Apple Developer ID (`$APPLE_SIGNING_IDENTITY`) 4. Notarizes `.app` w/ Apple 5. Creates signed `.dmg` 6. Verifies engine sidecar is lipo'd fat (arm64 + x86_64 both present) 7. Generates `latest.json` w/ `darwin-aarch64*` AND `darwin-x86_64*` keys 8. Creates **draft** GH Release w/ all artifacts
One DMG covers Apple Silicon + Intel (macOS Universal; the lipo/verify steps live in `.github/workflows/release.yml`).
Duration: ~15-20 min (2-arch compile).
**After CI:** the release stays as a **draft**. Stop there. The user reviews the draft and clicks "Publish" themselves. Do NOT run `gh release edit --draft=false` or otherwise auto-publish — publishing is the user's call, every time.
1. **Verify:** `cargo check --workspace && cd app && pnpm tsgo --noEmit` 2. **Commit all changes** to `main` 3. **Bump:** `./scripts/version.sh 0.3.X` (patch default) 4. **Write notes:** `.github/release-notes/0.3.X.md` — narrative, not a commit dump. Cover: what changed for the user, before-you-upgrade caveats (always include the macOS drag-install reminder), known limitations. Pattern from `.github/release-notes/0.4.0.md`. Skip only for trivial hotfixes. 5. **Commit bump + notes:** `git add -A && git commit -m "release: v0.3.X"` 6. **Tag + push:** `git tag v0.3.X && git push origin main --tags` 7. **Wait CI:** ~10-15 min. Check `github.com/gethouston/houston/actions` 8. **If CI fails:** `gh run view <id> --log-failed`, fix, commit. Re-tag = `git tag -d v0.3.X && git push origin :refs/tags/v0.3.X`, then re-tag + push. 9. **STOP. Hand off draft to user.** The CI-created GH Release is a draft. Tell the user it's ready for review and link it. Do NOT publish it yourself — `gh release edit --draft=false` is the user's call. Publishing flips on auto-update for every installed Houston, so it's never auto-pilot. 10. **After user publishes:** Installed apps show "Update available" w/in 30 min or next launch.
./scripts/version.sh 0.2.0
`version.sh` and `bump-cli.sh` are written to behave identically and emit byte-identical, LF-only output on macOS, Linux, and Windows git-bash (perl in-place edits, no `jq` JSON rewrite, no BSD `sed -i ''`). After touching either script, run the cross-OS regression test on each host you cut from:
./scripts/test/release-scripts.test.sh # expect: PASS N FAIL 0
`APPLE_SIGNING_IDENTITY`, `APPLE_API_KEY`, `APPLE_API_KEY_PATH`, `APPLE_API_ISSUER`, `TAURI_SIGNING_PRIVATE_KEY`, `TAURI_SIGNING_PRIVATE_KEY_PASSWORD`, `POSTHOG_KEY`, `POSTHOG_HOST`, `SUPABASE_URL`, `SUPABASE_ANON_KEY`, `SENTRY_DSN`. CI also `APPLE_CERTIFICATE` + `APPLE_CERTIFICATE_PASSWORD`.
Never hardcode. `option_env!()` in Rust, env vars in CI.
Fallback to manual build → `/build-app-local`.
Open source platform for AI-native products. Pre-built AI agents with real tools and 1000+ integrations, in a Rust engine + Tauri desktop app. Free forever.
Drive Houston's TS host + web UI end-to-end to verify a change against the running system (host HTTP battery + Playwright…
Build Houston App locally (macOS). Clean stale artifacts, pnpm tauri build, notarize DMG manually (Tauri skips), staple, verify,…
Debug bugs in Houston. NEVER guess. Read log files first (dev panes + agent runtime). Add targeted logging if not enough info.…
The screenshot self-critique loop. Run BEFORE declaring ANY Houston UI work done. Screenshot the touched screens in both themes…
Design new Houston UI (app screens, components, website sections) with intent, not templated defaults. Two-pass discipline inside…