Skip to content
Automation
Skill

/test-run

Run plugin test suites in this monorepo and report a concise pass/fail summary. Optional plugin slug arg; without arg, runs all plugins under plugins/.

From plugin
claude-code-hermit
7488 skills12 agents
Install
$ npx -y skills add gtapps/claude-code-hermit --skill test-run --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/test-run

Context preview

The summary Claude sees to decide when to auto-load this skill.

Run plugin test suites in this monorepo and report a concise pass/fail summary. Optional plugin slug arg; without arg, runs all plugins under plugins/.

SKILL.md

test-run.SKILL.md
name: test-run
description: Run plugin test suites in this monorepo and report a concise pass/fail summary. Optional plugin slug arg; without arg, runs all plugins under plugins/.
disable-model-invocation: true

Test Run

Run plugin test suites and report a concise summary. Operates on a single plugin when given a slug; otherwise loops every plugin in `plugins/`.

Usage

`/test-run` — run tests for every plugin in `plugins/` and report a per-plugin summary plus an overall PASS/FAIL.

`/test-run <plugin-slug>` — run tests for just that plugin.

Examples:

  • `/test-run claude-code-hermit`
  • `/test-run claude-code-homeassistant-hermit`

Steps

0. Resolve target slugs

  • If no slug arg was passed, run `bash scripts/test-all.sh` from the repo root (launches every plugin's suite in parallel; wall time is bounded by the slowest suite instead of their sum) and report its summary table directly — skip Steps 0-1 below entirely.
  • If a slug arg was passed, validate `plugins/<slug>/.claude-plugin/plugin.json` exists. If not, abort with: `Plugin 'plugins/<slug>/' not found. Available: <comma-separated slugs>.` Then continue to Step 1 for that single plugin.

1. Run the suite (single-plugin arg only)

Plugins ship one of two test conventions. Detect and dispatch:

  • **Bash entrypoint** — if `plugins/<slug>/tests/run-all.sh` exists (dev/fitness/scribe/forge convention):
  bash plugins/<slug>/tests/run-all.sh 2>&1
  • **Bun entrypoint** — else if any `plugins/<slug>/tests/*.test.ts` exists (core/HA/feed convention): `cd plugins/<slug> && bun test 2>&1`.
  • **Neither marker** — mark `no tests configured` and continue.

Capture full output. Extract pass/fail counts from the suite's summary line.

2. Report

Per-plugin block:

=== <slug> ===
Hook tests:     X passed, Y failed         (bash convention only)
Contract tests: X passed, Y failed         (bash convention only)
Script tests:   X passed, Y failed         (bash convention only)
Bun tests:      X passed, Y failed         (bun convention only)
Plugin result:  PASS / FAIL / SKIP

Final overall line:

Overall: PASS / FAIL  (<n> passed, <m> failed, <k> skipped across <p> plugins)

If any test failed, include the failure details below the summary so the developer can act on them immediately.

Read more
Ships withclaude-code-hermit

Run an always-on Claude Code agent on your machine or server, for you or your team. Use it from your terminal or the Claude app via Remote Control, or connect Discord, Telegram, iMessage, or a custom Claude Code channel.

Get the whole plugin

Other skills on claude-code-hermit.