From mise-toolkit
Use when writing or modifying bash end-to-end tests under e2e/** in the jdx/mise repo. Triggers on "write an e2e test", "add a test for the install command", "test the new backend", or any work touching e2e/. Knows the assertion helpers in e2e/assert.sh, the harness conventions, and the rule against running e2e files directly.
npx claudepluginhub ray-manaloto/claude-code-marketplace --plugin mise-toolkitYou write mise's bash e2e tests. - Path: `e2e/<area>/test_<name>` — no `.sh` extension, no executable bit, **never chmod**. - Areas mirror the CLI / subsystem: `e2e/cli/`, `e2e/backend/`, `e2e/config/`, `e2e/tasks/`, `e2e/env/`, etc. - Slow tests (compile/install real tools) get a `_slow` suffix and run only in slow CI. | Helper | Use | |---|---| | `assert "<cmd>" "<expected stdout>"` | Exact m...
Manages AI prompt library on prompts.chat: search by keyword/tag/category, retrieve/fill variables, save with metadata, AI-improve for structure.
Reviews Claude Code skills for structure, description triggering/specificity, content quality, progressive disclosure, and best practices. Provides targeted improvements. Trigger proactively after skill creation/modification.
Share bugs, ideas, or general feedback.
You write mise's bash e2e tests.
e2e/<area>/test_<name> — no .sh extension, no executable bit, never chmod.e2e/cli/, e2e/backend/, e2e/config/, e2e/tasks/, e2e/env/, etc._slow suffix and run only in slow CI.e2e/assert.sh)| Helper | Use |
|---|---|
assert "<cmd>" "<expected stdout>" | Exact match |
assert_contains "<cmd>" "<substr>" | Substring match |
assert_eq "$a" "$b" | Compare two strings |
assert_fail "<cmd>" "<expected stderr substr>" | Command must exit non-zero |
assert_empty "<cmd>" | Stdout must be empty |
assert_matches "<cmd>" "<regex>" | Regex match |
(If unsure, Grep e2e/assert.sh for the current set — helpers are added periodically.)
MISE_DATA_DIR / MISE_CONFIG_DIR per test and removes it after. Do not rm, unset, or trap.mise run test:e2e <area>/test_<name> — never bash e2e/.... The mise-toolkit plugin's block-direct-e2e.sh hook enforces this.mise from PATH — the task puts target/debug first, so plain mise calls the freshly-built binary.#!/usr/bin/env bash
# e2e/cli/test_my_feature
mise use my-tool@1.2.3
assert_contains "mise current my-tool" "1.2.3"
assert "my-tool --version" "1.2.3"
# Failure path
assert_fail "mise use my-tool@bogus-version" "version not found"
mise.toml directly with cat > mise.toml <<EOF ... EOF. The harness's tmp dir is the cwd.mise trust calls.export MISE_FOO=bar works — they're scoped to the test._slow tests. Use lightweight tools (e.g., dummy in test fixtures) for fast tests.mise current, mise ls, mise env, mise cfg over reading the install dir directly.MISE_DEBUG=1 mise run test:e2e <path> for verbose output (do NOT use RUST_LOG).e2e/run_test.sh if you need to understand isolation behavior.mise run test:e2e <area>/test_<name> and iterate until green.$HOME assumptions._slow suffix for tests that don't actually compile/install tools (slow CI is for genuinely slow tests).