Testing in Silo

SkillDev tools

Use when writing or updating unit tests in the Silo repo. Covers the co-located Vitest setup, the pure-logic (no @testing-library/react) style and how to extract testable helpers, driving host state directly via the valtio store, and the contract-and-edges coverage expectations.

Available today. Use it from your connected AI after setup.

Connect ahel once, and every AI you use reads what you have installed.

Then ask your AI: use the Testing in Silo skill

What this skill tells your AI

The instructions your AI receives, as published by silo-code/silo in .agents/skills/silo-testing/SKILL.md and read by ahel’s review.

Every change that adds or changes behavior ships with unit tests in the same change. Tests are part of the work, not a follow-up. Don't mark a task done until pnpm test is green with coverage for what you added.

How testing works here:

  • Vitest, co-located. Put *.test.ts / *.test.tsx next to the source it covers; the package vitest.config.ts picks up src/**/*.{test,spec}.{ts,tsx}. Run everything with pnpm test, or one package with pnpm --filter <pkg> exec vitest run <path>.
  • Pure-logic style. The suite tests logic, not rendered React (@testing-library/react is intentionally not a dependency). When the logic you're adding lives inside a component, extract it into a pure, exported helper and test that — e.g. view-switcher-model.ts (switcher show/segmented/ dropdown rules), markdown-preview/menu.ts (context-menu enablement), and markdown-preview/match.ts (file matching) were factored out of their components precisely so the rules are unit-testable. Components stay thin glue.
  • Host state can be driven directly: set up store (the valtio proxy) and the relevant registries in beforeEach, exercise the service, assert on the store — see editor-service.test.ts and editor-registry.test.ts.
  • Cover the contract and the edges, not just the happy path: fallbacks, no-ops/guards, disabled states, and "hidden/absent" cases (the editor view-switching tests pin the priority tie-break, stale-viewType fallback, read-only Cut/Paste, and the single-view/diff/untitled hidden cases).

Signals

GitHub stars
56
Forks
5
Last commit
Sep 2026
Advanced
Catalog kind
skill
Gateway key
silo-testing
Source
github.com/silo-code/silo