agentleFS
teispaceteispace/teitunnel/.claude/skills/verifying-changes/SKILL.md

verifying-changes

Skill2 starsChanged 47 days agoMITView on GitHub

Chooses and runs the right checks for a change in the Teitunnel repository (targeted Rust and UI tests while iterating, generated files, screenshots, accessibility, performance, end-to-end, then the full pnpm verify) and fixes what they report before committing. Use before every commit or pull request, and when asked to test, check or validate a change.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

4 rules. 0 are common, 3 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 3

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Read the first error, not the last.

    line 48
  2. Very specific:

    Run the failed step again, then pnpm verify again, until it passes.

    line 55
  3. Distinctive:

    Don't report a change as done while any check fails.

    line 57
  4. Distinctive:

    Commit messages are Conventional Commits, without AI attribution.

    line 67

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Verifying changes

Files changed in the working tree:

!git status --short

While iterating: run what the change touches

ChangedRun
A Rust crateCARGO_INCREMENTAL=0 cargo nextest run -p <package> -E 'test(<name>)'
Planner outputthe planner tests, then cargo insta review: read every snapshot diff
A Tauri command or an IPC typepnpm bindings, then the UI tests that use it
UI codepnpm --filter @teitunnel/desktop test -- <pattern>
A screen's lookpnpm --filter @teitunnel/desktop shoot /tmp/shots <route> in light and dark, and look at the images
Colours, text or focus orderpnpm --filter @teitunnel/desktop a11y <route>
Lists, charts, log viewspnpm --filter @teitunnel/desktop perf (add inspector for the Inspector list)
CLI definitionsUPDATE_DOCS=1 cargo test -p teitunnel-cli --bin teitunnel-cli docs
Token template, scopes or capabilitiesUPDATE_DOCS=1 cargo test -p teitunnel-core --test permissions_doc
locales/en.jsonpnpm --filter @teitunnel/desktop test -- i18n and cargo build -p teitunnel-core
New UI strings, imports on the startup path, a route's validateSearchpnpm --filter @teitunnel/desktop build:web && node apps/desktop/scripts/check-bundle-size.ts (the 250 KB initial JS budget; CI's Web job runs it, pnpm verify doesn't). A route file's static imports load with the app: import small helpers from their own module, not a feature's index
Website or docspnpm --filter @teitunnel/web test and pnpm --filter @teitunnel/web build
Flows across app, engine and Cloudflarepnpm --filter @teitunnel/desktop e2e:build && pnpm --filter @teitunnel/desktop e2e
Native look, windows, tray, materialspnpm build and try the packaged app

Rust packages: teitunnel-core, teitunnel-cf-api, teitunnel-cloudflared, teitunnel-lens, teitunnel-mcp, teitunnel-control, teitunnel-localdomains, teitunnel-cli, teitunnel-desktop, fake-cloudflare, fake-cloudflared.

Before committing: everything

pnpm verify

It runs Biome, the version check, tsc for the app and website, rustfmt, clippy with -D warnings, Vitest, the website tests, cargo nextest for the workspace and cargo deny. It must exit 0.

When something fails

  1. Read the first error, not the last. Fix the cause, not the symptom.
  2. Formatting: pnpm fmt (or cargo fmt --all and pnpm exec biome check --write).
  3. Clippy: fix the code; #[allow] only with a comment saying why it's right here.
  4. A failing test you didn't touch: find out why before changing it. A test is changed only when the behaviour it pins was meant to change.
  5. Stale generated files (bindings.ts, cli.mdx, permissions.mdx): regenerate them with the commands above; never edit them by hand.
  6. Run the failed step again, then pnpm verify again, until it passes.

Don't report a change as done while any check fails; say which check fails and why.

Before opening the pull request

  • The change works as a person would use it, not only in tests (run it in pnpm dev, or the CLI, against a test account or the fakes).
  • UI changes have light and dark screenshots.
  • Docs updated (see writing-docs).
  • Any skill in .claude/skills/ that describes what you changed still matches the code; update it in the same pull request (see "Keep this guidance current" in AGENTS.md).
  • Commit messages are Conventional Commits, without AI attribution.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.