Software engineer

Unit test writer

Immediate result: A ready-to-run test file covering the happy path, edge cases and failures for your function.

Problem it solvesWriting tests for existing functions is tedious, so edge cases go untested until they break in production.

Add this skill to

You paste

Python: def slugify(title): return title.lower().replace(' ', '-') # pytest

You get

Covers: basic title, multiple spaces, leading/trailing spaces, punctuation, empty string, unicode.

def test_collapses_multiple_spaces(): assert slugify('a b') == 'a-b'

Suspected bug: 'a b' returns 'a--b' today.

About this skill

About Unit test writer

Tests for existing code rarely get written because listing the cases is tedious. This skill starts there: it lists every behaviour your function promises, including the edge cases people forget — empty input, nulls, boundaries and errors. It then writes one focused, clearly named test per behaviour in your framework, mocking only network, time and randomness so the suite stays deterministic. When a behaviour looks like a bug, it says so instead of writing a test that locks the bug in. You get a file you can drop into your project and run straight away.

Unit test writer AI skill for Software engineer: you paste "Python: def slugify(title): return title.lower().replace(' ', '-')  # pytest" and get "Covers: basic title, multiple spaces, leading/trailing spaces, punctuation, empty string, unicode."
Unit test writer — example input and the first lines it returns. Works in ChatGPT, Claude and Gemini.
Job profile
Software engineering · Software engineer
Works in
ChatGPT, Claude, Gemini, Copilot, Claude Code
Format
Agent Skills (SKILL.md)
Price
Free, no sign-up
Install instructions

Copy, paste, send

  1. Cold email writerCopy skillCopied ✓1 Copy the skillPress Copy skill.
  2. ANY AI ASSISTANTSKILLPaste here, then press Enter2 Paste it into a new chatChatGPT, Claude, Gemini or Copilot.
  3. ANY AI ASSISTANT3 Send your inputSend a function.
The skill — paste this into your AI assistant
# Skill: Unit test writer

You are running the "Unit test writer" skill for me. I work as: Software engineer. What I need from you: a ready-to-run test file covering the happy path, edge cases and failures for my function.

## When I send you a function, the language and test framework I use (e.g. Jest, pytest, JUnit)
1. List the behaviours the function promises, including edge cases (empty, null, boundaries, errors).
2. Write one focused test per behaviour with a descriptive name.
3. Mock only external calls (network, time, randomness).
4. Note any behaviour that looks like a bug rather than writing a test that locks it in.

## Reply in this format
- Behaviours covered (checklist)
- Test file (one code block)
- Suspected bugs found while testing

## Rules
- Use the framework's idioms and the project's import style if shown.
- Tests must be deterministic: fix dates and seeds.
- Use only the facts I give you; mark anything you had to assume with [ASSUMPTION].
- If something essential is missing, ask me one short question, then continue.
- No preamble or filler: start with the result.

Confirm you're ready in one line, then wait for me to send a function, the language and test framework I use (e.g. Jest, pytest, JUnit).

Then sendA function, the language and test framework you use (e.g. Jest, pytest, JUnit). For example: Python: def slugify(title): return title.lower().replace(' ', '-') # pytest

ChatGPT

  1. Fastest: paste the skill as your first message in a new chat, then send your input.
  2. To keep it: open a Project, choose Instructions (or Settings → Personalization → Custom instructions for every chat) and paste it there.
  3. To share it with a team: create a custom GPT and paste the skill into its Instructions.
  4. In the Codex app: copy the skill's folder into ~/.codex/skills/ (or Customize → Skills → Add → Create skill).

Claude

  1. Fastest: paste the skill as your first message in a new chat, then send your input.
  2. To keep it: create a Project, open Project instructions and paste the skill.
  3. As a Claude Skill: download the skill's ZIP, then in Claude open Settings → Skills → Add → Upload skill and choose the file.

Gemini

  1. Fastest: paste the skill as your first message in a new chat, then send your input.
  2. To keep it: open Gems → New Gem, paste the skill into Instructions and save.

Microsoft Copilot

  1. Fastest: paste the skill as your first message, then send your input.
  2. In Microsoft 365 Copilot, save it as a prompt or paste it into an agent's instructions to reuse it.

Any other assistant

  1. Paste the skill as the system prompt or first message in any chat assistant (Perplexity, Meta AI, DeepSeek, Mistral, local models).
  2. Coding agents that read the Agent Skills format (SKILL.md) can load the downloaded file from their skills folder.

Install it permanently

Upload it to Claude, add it to ChatGPT's Codex app, clone it into Claude Code, or download the SKILL.md for any agent. Full guide with screenshots →

Download the ZIP and upload it in Claude. Claude then uses the skill on its own whenever a request matches.

Download ZIP

Quick setup

  1. In Claude, open Settings → Skills (under Customize).
  2. Click Add → Upload skill.
  3. Choose the ZIP — don't unzip it — and make sure the skill is switched on.
Claude Settings with Skills selected under Customize, and the Add menu open showing Upload skill, Create a skill, Create with Claude and Record your screen

Repositoryscienceofapps.com/skills/ai-skills.git · all 200 skills, one folder each, plain git over HTTPS

What it does

The steps it follows

  1. List the behaviours the function promises, including edge cases (empty, null, boundaries, errors).
  2. Write one focused test per behaviour with a descriptive name.
  3. Mock only external calls (network, time, randomness).
  4. Note any behaviour that looks like a bug rather than writing a test that locks it in.
What you get back

The reply format

  • Behaviours covered (checklist)
  • Test file (one code block)
  • Suspected bugs found while testing

Rules it never breaks

  • Use the framework's idioms and the project's import style if shown.
  • Tests must be deterministic: fix dates and seeds.
  • Uses only the facts you give it and marks assumptions.
FAQs

Questions about Unit test writer

What does the Unit test writer skill do?

Writing tests for existing functions is tedious, so edge cases go untested until they break in production. The skill fixes that: a ready-to-run test file covering the happy path, edge cases and failures for your function.

How do I install Unit test writer in ChatGPT, Claude or Gemini?

Copy the skill and paste it as the first message of a new chat, then send your input. To keep it, paste it into a ChatGPT Project or custom GPT, a Claude Project or a Gemini Gem, or upload the SKILL.md file as a Claude Skill.

What do I send Unit test writer after installing it?

Send a function, the language and test framework you use (e.g. Jest, pytest, JUnit). If something essential is missing, the skill asks you one short question and then continues.

Is the Unit test writer skill free?

Yes. It's free to copy, use and adapt, with no sign-up, and works in the free versions of ChatGPT, Claude, Gemini and Copilot.

More for software engineering
Software engineer joining a codebase

Legacy code explainer

ProblemInherited code has no docs and the author left, so every change feels risky.

You paste

A 200-line PHP function processOrder() with nested ifs and three SQL queries

You get

What it does: validates a cart, charges the card, then writes the order — in that order, with no transaction.

Side effect: line 88 updates stock before payment succeeds.

Risky: a failed charge leaves stock reduced. Wrap lines 80–140 in a DB transaction.

Immediate resultA plain-English walkthrough of what the code does, its hidden side effects and where it's safe to change.

Developer / data engineer

Regex builder

ProblemRegular expressions are hard to write and harder to read, and one wrong character silently matches too much.

You paste

JavaScript: match Indian mobile numbers, optional +91, 10 digits starting 6–9

You get

/^(?:\+91[- ]?)?[6-9]\d{9}$/

[6-9] — first digit of Indian mobiles; \d{9} — nine more digits.

✓ +91 9876543210 · ✓ 9876543210 · ✗ 5876543210 · ✗ 98765 43210

Immediate resultA tested regex for your flavour, explained token by token, with matching and non-matching examples.

Backend engineer / DBA

SQL query optimizer

ProblemA slow query is hurting the app and it isn't obvious whether the fix is an index, a rewrite or both.

You paste

PostgreSQL: SELECT * FROM orders WHERE DATE(created_at) = '2026-10-01' — 4M rows, 3 s

You get

Bottleneck: DATE() on created_at prevents index use.

Rewrite: WHERE created_at >= '2026-10-01' AND created_at < '2026-10-02'

Index: CREATE INDEX ON orders (created_at); expect an Index Scan in EXPLAIN ANALYZE.

Immediate resultA rewritten query, the indexes to add and how to verify the speed-up with EXPLAIN.

Free PDF · 74 pages · 2 editions

The Laws of UX, in one field guide

60 research-backed principles in 6 categories — what each one means, why it works on the human brain and how to use it on your own screens. Written by Sushant Singh, founder of Science of Apps, who has scaled consumer apps to lacs of users and spent 10+ years leading product across startups and digital businesses in the US, EU & India.

Pick your edition
Free. No card, no paywall — just your email.
Free PDF · 74 pages

Get Laws of UX by email

Choose your edition

You’ll also get occasional UX psychology tips. Unsubscribe anytime. Privacy policy

Free PDF · 90 pages · 2 editions

100+ Subscription Paywalls, decoded

110 real paywalls from top apps, taken apart, rated out of 5 and decoded with the Laws of UX — plus the frameworks, copy and checklists to ship your own. By Sushant Singh, founder of Science of Apps.

  • 110 paywalls rated
  • 34 Laws of UX
  • 12 frameworks

Which paywall scored 4.8 out of 5, and which scored 2.6? It’s all inside.

Pick your edition
Free. No card, no paywall — just your email.
Free PDF · 90 pages

Get 100+ Paywalls, Decoded by email

Choose your edition

You’ll also get occasional UX psychology tips. Unsubscribe anytime. Privacy policy