test-driven-development
Use when implementing any feature or bugfix, before writing implementation code
Security
No findingsFiles checked: 2 of 2. Code blocks and scripts analysed: 19. Risk score: 10 of 100. Static analysis does not guarantee safety: it finds only known techniques.
Effect by model
Difference in success rate with and without the skill, in percentage points. The bar and the numbers in brackets show the 95% interval. The vertical line marks zero; gridlines are 50 pp apart. Repetitions: 3. Sandbox: docker.
| Model | Effect | Conclusion | Without skill | With skill | Unrelated tasks | Tokens |
|---|---|---|---|---|---|---|
opus-5-5 | opus-5-5+50 [+22; +78] | Helps | 50% | 100% | 0 pp | 6.6× |
sonnet-5-5 | sonnet-5-5+100 [+100; +100] | Helps | 0% | 100% | 0 pp | 8.6× |
haiku-5-5 | haiku-5-5+44 [+11; +83] | Helps | 56% | 100% | 0 pp | 4.5× |
What the gain costs
opus-5-5Proven gain50 points more tasks solved, at 6.6× the tokens.sonnet-5-5Proven gain100 points more tasks solved, at 8.6× the tokens.haiku-5-5Proven gain44 points more tasks solved, at 4.5× the tokens.
Where the skill made the biggest difference
- HelpedAdd call_with_retry(fn, attempts) to net.py. It calls fn() and returns its result. If fn raises, it tries again, up to attempts calls in total, then re-raises the last error.
opus-5-5 · 0% → 100%sonnet-5-5 · 0% → 100%haiku-5-5 · 0% → 100% - HelpedAdd unique_slug(slug, taken) to slugs.py. If slug is not in the set taken, return it. Otherwise return slug-2, or slug-3, and so on: the first free one.
opus-5-5 · 0% → 100%sonnet-5-5 · 0% → 100%haiku-5-5 · 33% → 100% - HelpedCustomers say a 10% coupon on a 200.00 cart takes off 10.00 instead of 20.00. Please fix it in cart.py.
sonnet-5-5 · 0% → 100%haiku-5-5 · 0% → 100% - HelpedA booking from 2026-03-01 to 2026-03-03 should bill for both nights, and a same-day booking should bill one night, but same-day bookings are billed zero. Fix nights() in booking.py.
sonnet-5-5 · 0% → 100% - Helpedsplit_row in rows.py breaks on values like: a,"b,c",d. That should give three fields: a, b,c and d. Please fix it. Use only the standard library.
sonnet-5-5 · 0% → 100% - HelpedAdd chunked(items, size) to batches.py. It returns a list of lists of at most size items, in order. A size below 1 must raise ValueError.
sonnet-5-5 · 0% → 100%
Tasks used in this measurement: 6 with the skill in mind, 2 unrelated
fix-coupon-totalCustomers say a 10% coupon on a 200.00 cart takes off 10.00 instead of 20.00. Please fix it in cart.py.fix-booking-nightsA booking from 2026-03-01 to 2026-03-03 should bill for both nights, and a same-day booking should bill one night, but same-day bookings are billed zero. Fix nights() in booking.py.fix-quoted-csvsplit_row in rows.py breaks on values like: a,"b,c",d. That should give three fields: a, b,c and d. Please fix it. Use only the standard library.add-retry-helperAdd call_with_retry(fn, attempts) to net.py. It calls fn() and returns its result. If fn raises, it tries again, up to attempts calls in total, then re-raises the last error.add-unique-slugAdd unique_slug(slug, taken) to slugs.py. If slug is not in the set taken, return it. Otherwise return slug-2, or slug-3, and so on: the first free one.add-chunkedAdd chunked(items, size) to batches.py. It returns a list of lists of at most size items, in order. A size below 1 must raise ValueError.bump-versionSet the version in package.json to 2.0.0. Change nothing else.count-todosCount the lines containing TODO in notes.txt and write just the number to count.txt.
Compatibility and permissions
Stableopus-5-5StableSkill opened in 100% of runssonnet-5-5StableSkill opened in 100% of runshaiku-5-5StableSkill opened in 100% of runs
- Declared tools
- none
- Inferred from files
- Bash
- Programs
- cargomakenpm
- External hosts
- none
- Environment variables
- none