anarlog: Skill for Claude Code

.agents/skills/testing/SKILL.md

testing is a skill for Claude Code, Codex from fastrepl/anarlog. It costs 68 tokens per session (728 once invoked), scanned A, original, MIT.

A set of rules for deciding which tests to add, change, remove, or review in a TypeScript or Rust project. Tests are checks that detect when software behavior has changed or broken.

In plain words
What is it for?
Use it when fixing bugs, reviewing a test suite, deciding whether a code change needs a test, or pruning tests that provide little protection.
Why use it?
It reduces slow, fragile, or repetitive tests while keeping checks for bugs, data loss, security, public interfaces, and recovery behavior.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents); mentions AGENTS.md.

This is fastrepl/anarlog's own configuration. It tells Claude Code and Codex how to work on anarlog itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything anarlog configures →

About the project

anarlog is a local-first AI meeting notetaker that captures device audio, transcribes meetings, and stores notes, transcripts, and recordings on the user's computer. It is for people who want meeting notes without adding a bot to calls or sending conversation data to an external cloud. The catalogue entries provide agent integrations and workflows for the application.

fastrepl/anarlog · 9,621 stars · on GitHub · anarlog.so

Reuse

Borrowing it

Nothing to install: this file belongs to fastrepl/anarlog. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/fastrepl/anarlog/main/.agents/skills/testing/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/fastrepl/anarlog

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for testing

README.md
[![agentmods](https://agentmods.dev/badge/skills/fastrepl/anarlog/testing/github.svg)](https://agentmods.dev/skills/fastrepl/anarlog/testing)
Your own site
<a href="https://agentmods.dev/skills/fastrepl/anarlog/testing"><img src="https://agentmods.dev/badge/skills/fastrepl/anarlog/testing/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for testing

Your own site · 80×15
<a href="https://agentmods.dev/skills/fastrepl/anarlog/testing"><img src="https://agentmods.dev/badge/skills/fastrepl/anarlog/testing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 68 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 728 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00068 $0.00728
Opus 5.5 $0.00027 $0.00291
Sonnet 5.5 $0.00014 $0.00146
Haiku 4.5 $0.00007 $0.00073

Measured 29d ago against content hash d1a6585cda17, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 29d ago.

The scan reads SKILL.md. This mod also ships 1 executable file (scripts/test-weight.mjs), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.agents/skills/testing/SKILL.md · 43 lines

How it starts

The opening of the file, as written. The whole thing — 43 lines — stays where its author put it; the contents beside it link to each section on GitHub.

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.

Read the full file on GitHub · 43 lines

Files

What ships with it

1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 29d ago First seen · 43 lines · 68 tokens per session scan A d1a6585cda17

Subscribe to this mod's changes

testing is a skill published in the GitHub repository fastrepl/anarlog (9,621 stars, last pushed yesterday), licensed MIT. It adds 68 tokens to every session and 728 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-30.

Related

Other skills, from other repositories

testing-rules

Testing standards — frameworks, the testable-logic trigger, golden/snapshot rules, mocking rules, and the test-author → testing-reviewer pipeline. Load for /add-tests and any change that touches testable logic.

saeedkolivand/ai-job-hunter-app · 48 tokens

author-contract

Shared write-side contract every domain AUTHOR imports — smallest-diff implementation, ground-first, validation gates, tests-are-blocking, and never-approve-your-own-work. The write-side mirror of token-efficiency. Load at the start of any implementation task.

saeedkolivand/ai-job-hunter-app · 55 tokens

coding-standards

General repo rules enforced by ESLint/TypeScript/CI — PRs-only, never bypass lint, import ordering, type imports, path privacy, commit format. Load for any code change.

saeedkolivand/ai-job-hunter-app · 44 tokens

run-wenlan-app

Build, launch, screenshot, and drive the wenlan-app Tauri desktop app in dev mode on macOS (WKWebView) or Windows (WebView2). Use when asked to run or start the app, verify a UI change in the real running app (not just tests), or take a screenshot of it.

wenlan-app/wenlan · 71 tokens

graphify-windows

Turn any folder of files into a navigable knowledge graph with community detection, an honest audit trail, and three outputs: interactive HTML, GraphRAG-ready JSON, and a plain-language GRAPHREPORT.md.

saeedkolivand/ai-job-hunter-app · 75 tokens

lessons

How to propose and query distilled lessons (the experiential memory). Only project-steward persists; every other agent proposes/queries. Use when you discover a durable lesson or need prior experience for the current task.

saeedkolivand/ai-job-hunter-app · 45 tokens