Agent skill

Testing Workflow

by ISET in ISET/isetcam

A skill your agent uses when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker…

MITAuto-check passedTesting & QA

Install Testing Workflow

skills CLI
$ npx skills add ISET/isetcam --skill testing-workflow -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ISET/isetcam testing-workflow --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ISET/isetcam.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/testing-workflow .claude/skills/testing-workflow && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
testing-workflow
GitHub stars
176
Token cost
~1.4k tokens
SKILL.md length
673 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
MIT

At a glance

A skill your agent uses when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker…

  • Works in 4 steps: Run the unit-test runner in the _tests_… → Run any directly related tutorial or… → Run ieUnitTest before sharing or merging… → …
  • Choosing ISETCam tests after a code change — ieUnitTest
  • SKILL.md covers Before testing, A practical testing workflow, Unit tests and Tutorial and example tests, plus 2 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Testing Workflow is an agent skill from ISET/isetcam. Use when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker, or diagnosing a failing/interrupted test run.

Its SKILL.md is about 1.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Unit testing. The repository describes itself as: Open source version of the original ISET, a complement to ISETBIO. The licence is MIT.

When your agent uses it

  • Choosing ISETCam tests after a code change — ieUnitTest
  • Selecting/starting a partial run
  • The % SkipFile marker
  • Diagnosing a failing/interrupted test run

Example prompts

  • “/testing-workflow”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. Run the unit-test runner in the _tests_ directory nearest your change.
  2. Run any directly related tutorial or example with 'selection'.
  3. Run ieUnitTest before sharing or merging a substantial change.
  4. Run the complete tutorial or example suite when the change affects shared

What it can do on your machine

Read from SKILL.md and the folder at commit 17146a9. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are matlab).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Testing Workflow loads about 1.4k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 673 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~60
When it runs · the whole SKILL.md, loaded when a task matches
~1.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from ISET/isetcam at commit 17146a9, republished under its MIT licence (© ISET). 673 words, ~1,427 tokens.

Download SKILL.mdSave it as .claude/skills/testing-workflow/SKILL.md (or your agent's skills folder).
name
testing-workflow
description
Use when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker, or diagnosing a failing/interrupted test run.

Testing ISETCam

This guide is for developers who have changed ISETCam and want to check that their work has not broken existing behavior. Most users do not need to run these tests.

Before testing

Start MATLAB with ISETCam and its subdirectories on the path (see the matlab-environment-setup skill). A clean MATLAB session is recommended for tutorial and example tests because those runners reset ISET state and close figures between scripts.

ISETCam provides three repository-wide runners:

RunnerPurpose
ieUnitTestRun automated function-based unit tests
ieTutorialTestRun tutorial scripts as smoke tests
ieExampleTestRun example scripts as smoke tests

A practical testing workflow

During development, begin with the smallest relevant test:

  1. Run the unit-test runner in the _tests_ directory nearest your change.
  2. Run any directly related tutorial or example with 'selection'.
  3. Run ieUnitTest before sharing or merging a substantial change.
  4. Run the complete tutorial or example suite when the change affects shared setup, data, graphics, or broadly used APIs.

This progression usually catches problems faster than beginning with every repository test.

Unit tests

Run all ISETCam unit tests:

matlab
results = ieUnitTest;

Unit tests are stored in _tests_ directories near the code they protect. Most areas also provide a focused runner, for example:

matlab
results = sceneUnitTest;
results = sensorUnitTest;
results = opticsUnitTest;

The returned value is a MATLAB TestResult array. The runner prints a summary, and the same results can be reported again when needed:

matlab
ieTestReport(results,'sceneUnitTest');

Prefer colocated function-level tests named test_<functionname>.m when adding or changing behavior. Good function-level tests cover API/shape expectations, key behavior or mapping checks, stable golden-value fingerprints with named tolerances, and important input-validation cases.

Treat isetvalidate as the broader system/regression validation suite when relevant to a change.

Tutorial and example tests

Run an entire suite:

matlab
tutorialRun = ieTutorialTest;
exampleRun = ieExampleTest;

These runners recursively discover plain-text t_*.m and s_*.m files in the corresponding directory. Each script runs with fresh ISET state so it cannot depend on variables or objects created by an earlier script.

Run one script with selection

Use 'selection' while developing or debugging one tutorial or example:

matlab
run = ieTutorialTest('selection','t_cameraIntroduction');
run = ieExampleTest('selection','s_metricsSPD');

The selected value may be a script stem, a file name including .m, a path relative to the tutorial or example directory, or a full path.

Begin partway through a suite with start

Use 'start' to run the named script and every script after it in the deterministic, path-sorted execution plan:

matlab
run = ieTutorialTest('start','t_cameraIntroduction');

This is useful after fixing a failure in a long run. It starts a new run; it does not modify or resume the earlier checkpoint.

Show full SKILL.md (272 more words)Show less
Skip unsuitable scripts

Place this marker on its own comment line when a tutorial or example should be discovered but not executed automatically:

matlab
% SkipFile

Whitespace around the marker is accepted, but the form above is preferred. Use it sparingly for scripts requiring unavailable data or toolboxes, manual interaction, excessive runtime, or a documented unresolved failure. The legacy % UTTBSkip marker remains supported for compatibility with older files, but new and updated files should use % SkipFile.

Scripts that generate or refresh repository data should instead be named data_*.m; they are not tutorial or example smoke-test sources (see the authoring-tutorials-examples skill).

Reading results

Tutorial and example runners return a run struct containing the planned files, per-file status, errors, timing, and checkpoint paths. Each file has status Passed, Failed, or Skipped.

The runner prints a summary automatically. Use ieTestReport to list files of interest:

matlab
ieTestReport(run,'List','failed');
ieTestReport(run,'List',{'failed','skipped'});
ieTestReport(run,'List','all');

Each run creates a timestamped directory under local/ containing:

  • checkpoint.mat — the latest durable run state;
  • progress.log — chronological progress and skip reasons; and
  • planned-files.txt — the exact execution order.

If MATLAB exits before returning a run variable, report directly from the checkpoint or its containing directory:

matlab
ieTestReport('/path/to/checkpoint.mat','List','all');
ieTestReport('/path/to/run/directory','List',{'failed','skipped'});

A checkpoint whose state remains Running represents a run that did not finish normally. Its unfinished count and last active file help identify where investigation should begin. For the schema and internals behind these checkpoints, see the test-runner-architecture skill.

When a test fails

Re-run the smallest failing unit test, tutorial, or example in a clean MATLAB session. Check whether the failure depends on external data, optional toolboxes, graphics, or user interaction before marking it with SkipFile. Tests should be deterministic and should not require state left by another test.

© ISET, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/testing-workflow of ISET/isetcam.

Open the folder on GitHubat commit 17146a9

Compare with similar skills

Testing Workflow next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Testing Workflow compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Testing Workflow this skillISET/isetcam176—~1.4kAutomated safety check: PassMIT
TDD WorkflowhellangleZ/burn-in-cceverywhere-ralph11211 repos~2.4kAutomated safety check: PassNone
Testing OpenLogi UIAprilNEA/OpenLogi23k—~1.1kAutomated safety check: PassApache-2.0
Go Testingcxuu/golang-skills1701 repos~1.3kAutomated safety check: PassApache-2.0
Contractssamchon/nestia2.2k—~1.3kAutomated safety check: PassMIT
Cohesion Over TestabilityEpicenterHQ/epicenter4.8k—~2kAutomated safety check: PassCustom licence

Similar skills

  • TDD Workflow

    hellangleZ/burn-in-cceverywhere-ralph

    A skill your agent uses when writing new features, fixing bugs, or refactoring code.

    112 GitHub starsUsed in 11 repos~2.4k tokens
    Testing & QAAuto-check passed
  • Testing OpenLogi UI

    AprilNEA/OpenLogi

    Verifies OpenLogi's native GPUI interface with focused tests, the component gallery and a mock agent, choosing the evidence that fits each change.

    23k GitHub stars~1.1k tokensUpdated 4 days ago
    Testing & QAAuto-check passed
  • Go Testing

    cxuu/golang-skills

    A skill your agent uses when writing, reviewing, or improving Go test code — including table-driven tests, subtests, parallel tests, test helpers, test doubles, and assertions with cmp.Diff.

    170 GitHub starsUsed in 1 repo~1.3k tokens
    Testing & QAAuto-check passed
  • Contracts

    samchon/nestia

    Defines self-acknowledgments for production declarations and tests.

    2.2k GitHub stars~1.3k tokensUpdated today
    Testing & QAAuto-check passed
  • Cohesion Over Testability

    EpicenterHQ/epicenter

    Collapse test-shaped production boundaries while preserving behavior and coverage.

    4.8k GitHub stars~2k tokensUpdated today
    Testing & QAAuto-check passed
  • JS-in-HTML Testing

    liaohch3/claude-tap

    Tests JavaScript embedded in an HTML file in two layers: pytest checks of the logic ported to Python, and Playwright runs in a real browser for the DOM.

    3.3k GitHub stars~924 tokensUpdated 15 days ago
    Testing & QAAuto-check passed

More from ISET/isetcam

  • A skill your agent uses when adding, editing, or deciding where to place a file in tutorials/ or examples/, when naming a new t.m, s.m, or data.m script, or when asked about the difference between a…

    176 GitHub stars~810 tokensUpdated 12 days ago
    Auto-check passed
  • A skill your agent uses when setting up or troubleshooting a MATLAB session for this repository — configuring the VS Code MATLAB extension, MATLAB Desktop vs.

    176 GitHub stars~1.3k tokensUpdated 12 days ago
    Auto-check passed
  • Matlab Evaluation

    ISET/isetcam

    A skill your agent uses when running, testing, or publishing MATLAB .m scripts from ISETCam or the local Psych 221 teaching repository in a non-interactive MATLAB session, including locating MATLAB…

    176 GitHub stars~1.2k tokensUpdated 12 days ago
    Auto-check passed
  • A skill your agent uses when converting an ISETCam tutorial or example .m file into a self-contained HTML file for a wiki page — iePublish, spublishTutorials, spublishExamples, embedding figures or…

    176 GitHub stars~1.4k tokensUpdated 12 days ago
    Auto-check passed
  • A skill your agent uses when modifying the shared ieRunTutorialExampleTests engine, changing the canonical run-record/checkpoint schema, adding a thin tutorial/example test wrapper for a new…

    176 GitHub stars~2.6k tokensUpdated 12 days ago
    Auto-check passed

Categories

Questions about Testing Workflow

What does Testing Workflow do?

A skill your agent uses when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker…. Testing Workflow is an agent skill from ISET/isetcam. Use when running or choosing ISETCam tests after a code change — ieUnitTest, ieTutorialTest, ieExampleTest, ieTestReport, selecting/starting a partial run, the % SkipFile marker, or diagnosing a failing/interrupted test run.

When should I use Testing Workflow?

Testing Workflow fits situations like: choosing ISETCam tests after a code change — ieUnitTest; selecting/starting a partial run; the % SkipFile marker; diagnosing a failing/interrupted test run.

How do I install Testing Workflow in Claude Code?

Run `npx skills add ISET/isetcam --skill testing-workflow -a claude-code`. Or copy the skill folder (.github/skills/testing-workflow in ISET/isetcam) into .claude/skills/testing-workflow in your project. Claude Code loads it when a task matches its description.

How do I install Testing Workflow in Codex?

Run `npx skills add ISET/isetcam --skill testing-workflow -a codex`. Or copy the skill folder (.github/skills/testing-workflow in ISET/isetcam) into .agents/skills/testing-workflow in your project. Codex loads it when a task matches its description.

Can I use Testing Workflow in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ISET/isetcam --skill testing-workflow -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testing-workflow, .gemini/skills/testing-workflow, .github/skills/testing-workflow and .opencode/skills/testing-workflow in your project.

What does Testing Workflow need to run?

SKILL.md names no scripts, command-line tools or credentials: Testing Workflow is instructions for the agent only.

Does Testing Workflow access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Testing Workflow safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Testing Workflow use?

Testing Workflow is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Testing Workflow use?

About 1.4k tokens (SKILL.md is roughly 5.7k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Testing Workflow?

Skills that share tags, products or a category with Testing Workflow: TDD Workflow (hellangleZ/burn-in-cceverywhere-ralph, 112 stars), Testing OpenLogi UI (AprilNEA/OpenLogi, 23k stars), Go Testing (cxuu/golang-skills, 170 stars) and Contracts (samchon/nestia, 2.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Testing Workflow?

ISET (a GitHub organization) maintains it in ISET/isetcam, which has 176 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on September 25, 2026.

Source: ISET/isetcam on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.