Skip to content
Skills Library
Programming · Testing

testing

/testing

Use when adding, changing, deleting, or reviewing tests in Anarlog (TypeScript, Rust, or node --test scripts), deciding whether a change needs a test, fixing a failing test, or pruning test suites. Covers what is worth testing, what to leave untested, test budgets, and the test-weight report.

Repository
anarlog ↗
Licence
MIT
Last repository change
28.10.2026

Assessment and security

100/ 100Class: good
Format25 / 25
Frontmatter with name and description, valid name, description up to 1,024 characters, name matching the folder.
Discoverability25 / 25
Description explains when to use the skill, has a reasonable length and uses third person.
Content35 / 35
At least 150 words and at most 500 lines, headings, step lists, examples or code.
Hygiene15 / 15
No placeholders such as TODO, no Windows paths, with a licence.
Riskno signals detected in the scan
Files in this package
2
Scripts
1
HTML comments
0
URLs in SKILL.md
0
Deprecation

No signals detected. Repository changed on 28.10.2026, without references to retired models or APIs.

Licence

MIT, open: use and modify while retaining author attribution.

What to check before installing
  • 1 scripts in this package. Review them before installing, as Claude may execute them.

Scripts: scripts/test-weight.mjs

What it does and when to use it

Use when adding, changing, deleting, or reviewing tests in Anarlog (TypeScript, Rust, or node --test scripts), deciding whether a change needs a test, fixing a failing test, or pruning test suites. Covers what is worth testing, what to leave untested, test budgets, and the test-weight report.

Original author description

Use when adding, changing, deleting, or reviewing tests in Anarlog (TypeScript, Rust, or node --test scripts), deciding whether a change needs a test, fixing a failing test, or pruning test suites. Covers what is worth testing, what to leave untested, test budgets, and the test-weight report.

How it works

  1. Write a test when
  2. Do not write a test for
  3. Budget
  4. Test-weight report
  5. Conventions
Original SKILL.md headings · 39 lines, 466 words
SKILL.md preview
---
name: testing
description: "Use when adding, changing, deleting, or reviewing tests in Anarlog (TypeScript, Rust, or node --test scripts), deciding whether a change needs a test, fixing a failing test, or pruning test suites. Covers what is worth testing, what to leave untested, test budgets, and the test-weight report."
---

# Testing

Use this skill when adding, changing, deleting, or reviewing tests in Anarlog, deciding whether a change needs a test, or pruning a test suite. Tests are code we pay for on every CI run and every refactor; keep the ones that catch real regressions and nothing else.

## Write a test when

- A bug was fixed: add one regression test that fails without the fix. One, not a matrix of neighbours.
- The behavior is observable by a user or another component: public APIs, tauri-specta bindings, OpenAPI contracts, MCP and CLI output, serializers and parsers, TipTap/ProseMirror JSON conversion.
- Losing it loses data or trust: SQLite migrations and desktop/mobile schema parity, CloudSync and E2EE, auth, billing and Stripe webhooks, permissions and RLS, recording and STT lifecycles.
- It is a real concurrency or recovery invariant: capture start/stop races, crash recovery, retry, cancellation, ordering between actors or tasks.
- It encodes release or store policy that a workflow edit could silently break (for example `scripts/desktop-release-provenance.test.mjs`).

## Do not write a test for

- CSS classes, DOM structure, exact copy, or log text, unless the text is a contract (CLI output parsed by another tool, i18n keys checked by CI).
- Mock call counts or call order when the observable result already proves the behavior.
- Private state, internal helpers already covered through their public caller, or trivial delegation.
- Framework or library behavior (React, TanStack, Tauri, Zustand, Tokio, serde).
- Constants, enum tables, type re-exports, or anything that mirrors source line by line.
- Package or file layout. Structural and import-boundary rules belong in oxlint/ESLint rules, not tests that read files from disk.
- `test.skip` / `#[ignore]` without a linked issue.

## Budget

- Prefer strengthening an existing test over adding a new one. Prefer one table-driven case over five copies only when the rows exercise different branches.
- A new test must name the regression it prevents in its title.
- Deleting a test is fine when the behavior is covered elsewhere, the code is gone, or it matches the "do not write" list. Say which in the commit or PR.
- Keep fixtures and helpers next to the tests that use them; delete them with the last caller.
- If a module's test file outgrows its source several times over, stop adding and consolidate first.

## Test-weight report

Run `node .agents/skills/testing/scripts/test-weight.mjs` from the repo root to list packages and files whose test code most outweighs their source. Use `--help` for thresholds and JSON output. Audit the top entries against the rules above before adding more tests to them.

## Conventions

Which tests run for which component is listed under "Pre-commit verification" in the root `AGENTS.md`; the workflows in `.github/workflows/` are the source of truth. Axum transport choice for API tests follows `../axum-test-transport/SKILL.md`.
Files in this package (2)
  • SKILL.md 3 KB
  • scripts/test-weight.mjs 11 KB

Versions

RepositoryScoreLicence
This page · fastrepl/anarlog100MIT
iuliandita/skills100MIT
wrongstack/wrongstack100MIT
langwatch/langwatch100Apache-2.0
mcouthon/agents100MIT
nteract/nteract100BSD-3-Clause
kettleofketchup/DraftForge100GPL-3.0
skillberry-ai/cap-evolve100Apache-2.0
TheBeardedBearSAS/claude-craft100MIT

Database snapshot: 13.11.2026 · package version ceb7b6028ee3 (SHA-256 digest of the entire package)

Downloads in the last 30 days: 0 · ranking

Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.

Similar skills

  • 100anarlog-webhooks
    Receive and verify Anarlog webhooks. Use when setting up Anarlog webhook handlers, debugging x-anarlog-signature verification, or handling meeting.completed and note.enhanced events from the Anarlog meeting notes app.
  • 90anarlog-workflow
    Execute Anarlog work immediately while recording issues, decisions, progress, and lessons in Linear. Use for Anarlog repository or Anarlog desktop, web, mobile, and API work, including related worktrees and ANLG issues. Explicit brainstorming stays discussion-first. Do not use…
  • 100testing-principles
    Language-agnostic testing principles for choosing which tests a change needs, test quality, and proof ownership, with frontend and browser E2E implementation references. Use when writing tests, deciding test scope, or reviewing test quality.
  • 90anarlog-workflow
    Execute Anarlog work immediately while preserving useful decisions and non-obvious lessons in Linear. Use for Anarlog repository or Anarlog desktop, web, mobile, and API work, including related worktrees and ANLG issues. Explicit brainstorming stays discussion-first. Do not use…
  • 90anarlog
    Query Anarlog meetings, notes, summaries, transcripts, participants, action items, and recurring history, or import a local recording. Use when a user asks about their Anarlog meeting data or needs meeting context for another task.
  • 100rust-testing
    Write and run Rust tests using cargo test with unit tests, integration tests, doc tests, and property-based testing. Use when writing Rust tests or setting up test infrastructure.

Feedback and reports

Your message goes to Bartosz Sokoliński. An email address is needed only for a reply. See the privacy policy.