Skip to content
Back to skills

Sushiai Testing

ASecurity

Choose proportional proof for a sushiAI change - which npm scripts, targeted node --test suites, desktop smoke or manual steps a diff needs - and read the results honestly. Use before claiming any change works, when a check fails, or when briefing functional-qa.

  • 2 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added October 18, 2026
ai-agentsrustgonodetestinggit

Works with

  • terminal

Security analysis

A100/100

Scanned October 18, 2026

npx -y skills add sushi-killer/sushiAI --skill sushiai-testing --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Sushiai Testing?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Sushiai Testing
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/sushi-killer-sushiai-testing/badge)](https://www.skillsdirectory.com/skills/sushi-killer-sushiai-testing)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: sushiai-testing
description: "Choose proportional proof for a sushiAI change - which npm scripts, targeted node --test suites, desktop smoke or manual steps a diff needs - and read the results honestly. Use before claiming any change works, when a check fails, or when briefing functional-qa."
---

# sushiAI testing

Prove the changed contract with the smallest meaningful check, then run the
required gate once. Broaden only for a new change, a failure or an open risk.

## Select the proof

| Change                                        | Proof                                                                                       |
| --------------------------------------------- | ------------------------------------------------------------------------------------------- |
| Any code change (required gate before commit) | `npm run ci` - the checks the change needs (below), conventions, eslint, prettier, `git diff --check` |
| A Rust crate, inner loop                      | `node scripts/test-rust.mjs --affected` - only the test binaries the change can affect     |
| Manifest, registry, routes, IPC surface       | `npm run test:contracts`                                                                    |
| Extension loading or surface state            | `npm run test:extensions`                                                                   |
| Layout, navigation, workspace or chat state   | `npm run test:core`                                                                         |
| `src/app`, `src/extensions` or `electron/`    | `npm run build`, then `npm run test:desktop`, and `$ui-evidence` when a screen changed      |
| Terminal rendering or unicode                 | `npm run test:terminal`, `npm run test:unicode`                                             |
| Daemon sessions, reattach, restart            | `npm run test:desktop` (strict daemon smoke)                                                |
| Startup or render cost                        | `npm run perf`                                                                              |
| Docs, skills or agent files only              | `npm run check:conventions` and `git diff --check`                                          |

Run a single file with `node --test tests/<name>.test.cjs`.

`npm run ci` prints what it selected and why (`scripts/ci-changes.mjs`, the
same selector as CI). Do not run a whole suite by hand on top of it; run
`CI_ALL=1 npm run ci` only when the selection itself is in doubt.

## Read results honestly

- The exit code is the verdict. Record `echo $?` or redirect to a file and read
  it back; a wrapper has printed a success line for a run that exited 1.
- Never verify through `npx`; use the npm script or `./node_modules/.bin/<tool>`.
- Tests are `.cjs` files importing `.ts` through Node's type stripping: nothing
  type-checks at test time, so an assertion must exercise behaviour. A test
  that only matches a string in the source proves nothing.
- `npm run test:desktop` tests `dist/`; it refuses a `dist` older than `src`.
  Build first.
- `tsc` covers only `src/`; `electron/` and `tests/` rely on ESLint.

## Writing tests

- A regression test fails on the original defect before the fix.
- Synthetic data only: `192.0.2.0/24` addresses, invented hosts and names. CI
  rejects private network addresses in `src`, `electron`, `tests`, `scripts`.
  When a test needs a private address as input, build it at runtime.
- Temporary trees go under `os.tmpdir()` and are removed; require `fs`, `os`,
  `path` inside the test that uses them.
- Do not hide a failure with retries, longer timeouts, weaker assertions or a
  refreshed baseline.

## When a check fails

Separate a product defect, a test defect and an environment problem before
changing anything. Fix failures the diff caused. Report a proven unrelated
failure with its evidence instead of widening the task.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.