Skip to content
cmux-testing logo

cmux Testing

cmux-testing

cmux testing rules for Swift Testing, test target compilation, test wiring, and package/refactor validation. Use when adding or changing tests, touching package/refactor code, or deciding whether reload.sh is enough validation.

manaflow-ai/cmux4.7Kinstalls27.6Kstars

SKILL.md

Full skill instructions

cmux Testing

Choose the first check

Run repository commands only from a trusted checkout; even verify-local.py --help and --list load repository code.

TaskCommand
Choose checks and parse changed Swiftpython3 scripts/​verify-local.py
Run the full CI static recipepython3 scripts/​verify-local.py --all
Parse current Swift editspython3 scripts/​verify-local.py --only swift-syntax --swift-changed
Check new Swift test-file wiringpython3 scripts/​verify-local.py --only test-wiring
See what a UI test did, one frame per actionscripts/​ui-test ClassName or scripts/​ui-test <run URL> (guide)
Render view code to PNGs in seconds, light and dark, without building the appscripts/​ui-lab/​ui-lab.py <harness> [--watch] (guide)
Dogfood the app from CI: drive it with a JSON tour and get screenshots and accessibility treesscripts/​run-e2e.sh --scenario dogfood/​scenarios/<tour>.json --ref <sha> --frames (guide)
Read the screenshots and GIF CI posted of an app PR's build before merging itthe PR's dogfood comment (guide)

Add a base ref after --swift-changed to include committed changes. Use --list to find other checks and --help for options. Parsing checks syntax; it doesn't typecheck or run tests.

Read the command guide for piped paths or JSON receipts. Use the validation guide to choose package, native, web or runtime checks. Docs and portable tooling use their scoped checks.

Reproduce and repair

Keep a focused command that fails on the reported symptom, then rerun it after the repair. Setup failures and zero executed tests don't demonstrate the bug. Exercise one behavior at a time so a failure identifies what needs fixing.

Keep two commits: first the failing behavioral regression, then the fix. Run the same focused command on both and record the commit SHAs, the expected failure and the passing result. A setup failure or zero executed tests is not regression proof. When the proof is available locally, push both commits together after the fix passes; a separate hosted CI run on the deliberately broken intermediate commit is unnecessary. If the failure only reproduces in CI, use that lane and keep its receipts. Required CI and review still apply to the final pushed head.

Test wiring

New cmuxTests/​*.swift files need both PBXFileReference and Sources build-phase membership in cmux.xcodeproj/​project.pbxproj. Add through Xcode or follow a wired sibling, then run the wiring check above: an unwired file can otherwise produce a misleading zero-test pass.

After creating, renaming, or deleting a direct cmuxTests/​*.swift file, run ./​scripts/​sync-test-wiring. It deterministically reconciles the PBXFileReference, PBXBuildFile, cmuxTests group child, and cmuxTests Sources membership; --check performs the same validation without writing. Foreign target membership is rejected with an explicit diagnostic. New Sources/​**/​*.swift app files are wired with ./​scripts/​wire-app-sources.py (--check lists unwired ones); UI tests with --target cmuxUITests --dir cmuxUITests; run it after any merge that took main's project.pbxproj, which drops a branch's app-source entries. The workflow-guard-tests CI job still runs ./​scripts/​lint-pbxproj-test-wiring.sh as a defensive Sources-phase guard.

Test quality

  • Exercise observable behavior through unit, integration, CLI or end-to-end paths.
  • Do not assert source snippets, signatures, AST shape or metadata keys solely to mirror implementation. For metadata behavior, inspect the produced artifact or execute the code that consumes it.
  • Add a small runtime harness when needed; skip a fake regression test if there is no meaningful behavioral oracle and explain the limit. See regression and quality for the judgment call.

Swift tests

Swift unit/​integration targets use Swift Testing (import Testing, @Test, @Suite, #expect, #require). Portable Python/​shell guards retain their existing frameworks. UI tests remain XCTest/​XCUITest; do not migrate XCUIApplication tests.

New Swift package test targets start on Swift Testing. Prefer parameterized tests for repeated cases and tags for selection. Use .serialized for suites that require ordering, not locks or sleeps. Migrate an existing XCTest file only when an edit already crosses it; see the migration mapping.

Native test evidence

An app build does not compile test targets. Package/​refactor and public API changes need the relevant test target compiled, then the selected tests actually executed. Follow build-for-testing and execution guidance; report skipped/​unsupported checks explicitly.

For remote tmux sizing changes, use the E2E recipe.

PR CI labels

Normal PR CI already runs the suites a diff edits or touches. full-ci and unit-ci are not review or merge requirements; see PR CI coverage before adding either.

More skills from manaflow-ai

cmux-keyboard-shortcuts logo
manaflow-ai/cmux

cmux-keyboard-shortcuts

Guide and apply cmux keyboard shortcut customization. Use when the user asks to customize, rebind, unbind, reset, audit, or create shortcut templates for cmux, including tmux-style, Vim-style, terminal-first, browser-heavy, iTerm/Terminal-like, or agent-triage layouts.

27.6K 5.9K
View
cmux-dev-workflow logo
manaflow-ai/cmux

cmux-dev-workflow

Contributor workflow rules for cmux setup, Xcode project normalization, tagged sidebar ExtensionKit development, and dev builds. Use when setting up the cmux repo, changing Xcode project files, adding sidebar extensions, or working with tagged debug builds.

27.6K 4.7K
View
cmux-architecture logo
manaflow-ai/cmux

cmux-architecture

cmux package architecture, refactor layering, dependency inversion, file organization, DocC documentation, package design discipline, testability, and Swift 6 concurrency rules. Use before adding or meaningfully rewriting Swift files, Swift packages, coordinators, services, repositories, or public package APIs.

27.6K 4.6K
View
cmux-debugging logo
manaflow-ai/cmux

cmux-debugging

Debug logging, Debug menu, runtime pitfalls, typing-latency-sensitive paths, SwiftUI list snapshot boundaries, OS-version repros, and local visual iteration for cmux. Use when adding debug probes, diagnosing UI/runtime issues, touching terminal rendering, tab/sidebar list views, drag/drop UTTypes, or using the Debug menu.

27.6K 4.5K
View
cmux-custom-sidebar logo
manaflow-ai/cmux

cmux-custom-sidebar

Build a custom cmux sidebar from a plain-language request. Use when the user asks for a custom sidebar, a sidebar that shows their workspaces/tabs/PRs/clock, a vibe-coded sidebar, or anything involving files in ~/.config/cmux/sidebars/. Covers authoring the interpreted SwiftUI-style file, enabling the beta flag, selecting it, and iterating with hot reload.

27.6K 4.5K
View
cmux-backend logo
manaflow-ai/cmux

cmux-backend

Backend TypeScript and Cloud VM development rules for cmux. Use when editing web/app/api, web/services, backend scripts, Cloud VM lifecycle, provider integrations, Postgres, Stack Auth pricing gates, migrations, or provider image build scripts.

27.6K 4.5K
View
cmux-localization logo
manaflow-ai/cmux

cmux-localization

Localization rules and audit workflow for cmux UI strings, settings rows, menus, shortcuts, schema/config text, docs, command/help text, alerts, tooltips, and web messages. Use whenever changing user-facing text.

27.6K 4.5K
View
cmux-socket-policy logo
manaflow-ai/cmux

cmux-socket-policy

Socket command threading and focus policy for cmux CLI/socket work. Use when adding or changing socket commands, CLI commands, telemetry commands, focus/select/open/close/send-key behavior, or automation that could steal app focus.

27.6K 4.5K
View
cmux-ghostty logo
manaflow-ai/cmux

cmux-ghostty

Ghostty submodule and GhosttyKit workflow rules for cmux. Use when modifying the ghostty submodule, rebuilding GhosttyKit.xcframework, updating the parent submodule pointer, or documenting fork conflict notes.

27.6K 4.5K
View

Popular AI tools

Kaiber logo
Video

Kaiber

Generate, edit, and beat-sync AI video with leading models in one workspace.

Paid
View
Vimcal logo
Productivity

Vimcal

The world's fastest calendar for remote work

Free
View

Transform Your Design with AI Designer by ImgCreator.ai

Freemium
View
Akool AI logo
Content & writing

Akool AI

Revolutionizing Video Production with AI-Powered Creativity

Paid
View

Extend an image past the frame and let AI fill the new aspect ratio.

Freemium
View
StarByFace logo
Security

StarByFace

Discover your celebrity doppelgänger with StarByFace!

Free
View
C

ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.

Freemium
View
Opus Clip logo
Coding & apps

Opus Clip

Opus.ai: Revolutionize Your Web Experience

Free
View