Choose the shortest feedback loop that exercises affected behaviour. Use for focused verification, regression tests, observable contracts, narrow integrations, test data, and deliberate coverage analysis in TypeScript projects, with supplementary Python examples.
77%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Passed
No findings from the security scan
Fix and improve this skill with Tessl
tessl review fix ./.agents/references/agent/ref.9ype9HjZ/SKILL.mdUse the shortest feedback loop that exercises the affected behaviour.
This practice governs verification selection, order and scope throughout the kit. Follow repository-mandated gates at their defined stages.
For an actual bug, reproduce it first, then retain a focused regression when it provides useful ongoing protection. For poorly understood existing behaviour, characterize the relevant outcome before changing internals.
See fast feedback examples for the development loop and observable contract examples for choosing assertions.
Protect observable state and consumer contracts. Real local collaborators are useful when they keep the test simple and meaningful. Assert interactions when the request, event, count, or ordering is itself contractual.
| Affected behaviour | Focused evidence | Read next |
|---|---|---|
calculateTotal(items) or a domain rule | Inputs → returned result; boundary cases that matter | Unit patterns |
POST /api/users or a database query | Request/response, persisted state, or transaction across the relevant boundary | Integration patterns |
| Registration form → API → redirect | Targeted journey through the application | E2E patterns |
| Service A → B communication | Consumer expectations plus provider verification | Service contracts |
| Generated configuration or installed package | What the consumer can load, import, execute, or observe | Observable contracts |
| Parser, serializer, or many input variations | Known fixtures and useful invariants | Test data |
Use the decision tree to select a boundary. Use the testing pyramid to review suite design, not to impose test-count quotas on a change.
See mocking strategies for boundary selection and test data strategies for fixtures, factories, seeds, and counterexamples.
Coverage shows what executed, not whether useful behaviour was verified. Request coverage analysis when it helps identify missing affected branches or assess suite quality. Use mutation testing selectively for important logic. Honour existing project and CI thresholds without introducing a new per-task percentage target.
See coverage strategies. CI and release verification can combine broader integration, service contracts, critical journeys, and existing coverage checks according to project requirements. Keep that separate from the focused edit/watch loop.
Follow installed runner versions and project scripts. Use Vitest guidance for Vitest-specific execution and watch workflows, and test generation when deriving focused cases from requirements or existing behaviour.
The supplied examples demonstrate patterns; adapt them to the application's actual entry points and contracts:
Use the bundled TypeScript test conventions for AAA, isolation, descriptions, query priority, and snapshot restraint. Consuming repository conventions take precedence.
slurpyb/pi-taskfile
808cef1
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.