agentleFS
vavalleevavallee/bindery/.claude/skills/smoke-testing/SKILL.md

smoke-testing

Skill518 starsChanged 57 days agoMITView on GitHub

Use when deciding whether to run an out-of-process test suite (real binary or live instance) — picks between `make smoke`, `make abs-contract`, and `make predeploy-smoke` after the unit suite passes but you've changed handler wiring, scheduler jobs, downloader integration, ABS imports, or anything that boots the binary. For the routine pre-PR matrix (lint / vet / test / typecheck / build) see the `testing` skill.

  • Reads credentials

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 4

    Very specific

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

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Default: make test is sufficient for most diffs.

    line 20
  2. Very specific:

    Don't add new fixtures to tests/abscontract/ casually — they pin to upstream behaviour and exist to catch regressions, not to satisfy a …

    line 53
  3. Very specific:

    Don't run make predeploy-smoke from a feature branch against production.

    line 54
  4. Very specific:

    Don't commit a passing make smoke log if make test is failing — the smoke suite covers golden paths, not error paths.

    line 55

“Common” is measured: kept by at least 6 in 10 of the 4 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

Smoke testing Bindery

Bindery has three out-of-process test layers in tests/ that complement go test ./internal/.... Picking the wrong one wastes time; picking none and shipping wastes more.

Decision: which suite?

SuiteCommandWhen to runCost
Unit + integrationmake testEvery change. In-memory SQLite via db.OpenMemory.~2-3 min
Race detectormake test-raceBefore opening a PR that touches concurrency: goroutines, background pools, shared caches. Sharded like CI.~45 min
HTTP smoke (real binary)make smokeBefore opening a PR that touches handlers, routing, auth, scheduler wiring, embed, or cmd/bindery/. Boots the actual binary on a real port.~30–60s; requires make build first (the target chains it)
ABS contractmake abs-contractTouching anything under internal/abs/, tests/abscontract/, or the ABS import flow. Pinned upstream contract — flakes here usually mean upstream drift, not your bug.Up to 15 min
Predeploymake predeploy-smokeOnly against a live instance. Requires BINDERY_URL and BINDERY_API_KEY env vars. Use after a deploy, not during development.~2 min, needs network

Default: make test is sufficient for most diffs. Promote to make smoke when you've changed wiring, not just logic.

Before you run anything

# Smoke needs the binary built and the embedded SPA in place.
make build       # equivalent: web-build → copy dist → go build

make smoke chains make build automatically — but if you've only edited Go and want to skip the slow npm ci, build once and re-run go test -count=1 -timeout=60s ./tests/smoke/... directly.

Reading failures

  • Smoke suite hangs at startup — usually the binary is panicking before it binds. Run ./bindery directly and read stderr.
  • Smoke suite passes but unit tests fail — the in-memory and on-disk DBs disagree. Check for a missing migration or for a test that depends on real-clock timing.
  • ABS contract reports diffs against the pinned snapshot — first verify it isn't upstream drift (tests/abscontract/ has fixture timestamps); only adjust the snapshot if the change is intentional.
  • Predeploy fails with 401/403 — the API key isn't being accepted. Check X-Api-Key header reaches the server (reverse-proxy strip is the usual cause).

Pre-PR sequence

For changes touching the API surface, run, in order:

make lint
make test
make smoke
cd web && npm run typecheck && npm run build && cd ..

Match what CI will run — see CONTRIBUTING.md §"Running the full local check suite" for the full matrix including govulncheck, golangci-lint v2.11.4 pinning, and the Docker buildx rehearsal.

Don't

  • Don't add new fixtures to tests/abscontract/ casually — they pin to upstream behaviour and exist to catch regressions, not to satisfy a flaky run.
  • Don't run make predeploy-smoke from a feature branch against production. It hits real endpoints.
  • Don't commit a passing make smoke log if make test is failing — the smoke suite covers golden paths, not error paths.

Download now (ZIP)

  • Other versions4 projects use a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 4

    1. kid-sid/claude-spellbook★ 190same name
    2. ncklrs/claude-chrome-user-testing★ 20same name
    3. fusebase-dev/fusebase-flow★ 9same name
    4. Bridev04/clauderail★ 0same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository10 other files it gives its agents.

Does it work?

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

Reviews can't be read right now.

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.