Agent skill

Characterization Test Generator

by gustavscirulis in gustavscirulis/snapgrid

Generates tests that capture current behavior of existing code before refactoring.

Custom licenceAuto-check: notesDevelopment

Install Characterization Test Generator

skills CLI
$ npx skills add gustavscirulis/snapgrid --skill characterization-test-generator -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install gustavscirulis/snapgrid characterization-test-generator --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/gustavscirulis/snapgrid.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/skills/testing/characterization-test-generator .claude/skills/characterization-test-generator && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
characterization-test-generator
GitHub stars
117
Used in
1 other repo
Token cost
~2k tokens
SKILL.md length
425 words
Files
1
Skills in repo
118
Repo updated
First seen
Licence
Custom licence

At a glance

Generates tests that capture current behavior of existing code before refactoring.

  • Works in 5 steps: Discover Code Under Test → Classify Behavior → Generate Tests → …
  • You need a safety net before AI-assisted refactoring
  • SKILL.md covers When This Skill Activates, Why This Matters for…, Process and Output Format, plus 2 more sections
  • Calls xcodebuild

What it does

Characterization Test Generator is an agent skill from gustavscirulis/snapgrid. Generates tests that capture current behavior of existing code before refactoring. Use when you need a safety net before AI-assisted refactoring or modifying legacy code.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Refactoring and Legacy modernization. The repository describes itself as: SnapGrid is an open-source Mac app for collecting, organizing, and analyzing UI screenshots. It uses AI to automatically detect UI components and patterns, making it a powerful…

When your agent uses it

  • You need a safety net before AI-assisted refactoring
  • Modifying legacy code

Example prompts

  • “Use the characterization-test-generator skill to generate tests that capture current behavior of existing code before refactoring”
  • “/characterization-test-generator”

Requirements

  • Pre-approved tools (allowed-tools): Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

Workflow steps

5 steps, taken from the step headings in SKILL.md.

  1. Discover Code Under Test
  2. Classify Behavior
  3. Generate Tests
  4. Fill in Actual Values
  5. Verify and Lock

What it can do on your machine

Read from SKILL.md and the folder at commit eb7eaf4. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Read
    • Write
    • Edit
    • Glob
    • Grep
    • Bash
    • AskUserQuestion

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • xcodebuild

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Characterization Test Generator loads about 2k tokens when it runs. Until then it costs about 51 tokens; SKILL.md has 425 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~51
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 425 words (~1,972 tokens).

“Generate tests that document what existing code actually does — not what it should do. These tests capture current behavior so you can refactor with confidence, especially when using AI to modify code.”

— opening of SKILL.md by gustavscirulis, Custom licence
name
characterization-test-generator
allowed-tools
Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion

Read the full SKILL.md on GitHub

Files

Just SKILL.md in .claude/skills/skills/testing/characterization-test-generator of gustavscirulis/snapgrid.

Open the folder on GitHubat commit eb7eaf4

Used in 1 other repository

We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in gustavscirulis/snapgrid, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Characterization Test Generator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Characterization Test Generator compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Characterization Test Generator this skillgustavscirulis/snapgrid1171 repos~2kAutomated safety check: NotesCustom licence
Code Refactoring Workflowluongnv89/claude-howto42k—~3.1kAutomated safety check: PassMIT
Modern JavaScript Patternswshobson/agents40k12 repos~548Automated safety check: PassMIT
Fowler-Style Refactoringlhfer/claude-howto-zh-cn2.3k—~156Automated safety check: PassMIT
Extract Command from Git::Libruby-git/ruby-git1.8k—~4.4kAutomated safety check: PassMIT
Refactoring Skill (Vietnamese)luongnv89/claude-howto42k—~3.1kAutomated safety check: PassMIT

Similar skills

  • Code Refactoring Workflow

    luongnv89/claude-howto

    Guides systematic, test-backed refactoring in the style of Martin Fowler, moving through research, planning and small incremental changes with your approval at each phase.

    42k GitHub stars~3.1k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Covers ES6+ syntax and functional patterns for refactoring older JavaScript: async/await, destructuring, spread, modules, generators and data pipelines.

    40k GitHub starsUsed in 12 repos~548 tokens
    DevelopmentAuto-check passed
  • Fowler-Style Refactoring

    lhfer/claude-howto-zh-cn

    基于 Martin Fowler 方法论做系统化重构。Use when users ask to refactor code, improve structure, reduce technical debt, clean up legacy code, or improve maintainability.

    2.3k GitHub stars~156 tokensUpdated 2 mo ago
    DevelopmentAuto-check passed
  • Migrates a direct command call in Ruby Git's Git::Lib to a Git::Commands class, as part of a Strangler Fig redesign, with a plan, legacy tests and a pull request.

    1.8k GitHub stars~4.4k tokensUpdated 7 days ago
    DevelopmentAuto-check passed
  • Refactoring Skill (Vietnamese)

    luongnv89/claude-howto

    Vietnamese edition of a systematic refactoring skill based on Martin Fowler's book, working in approved phases with small, test-backed changes.

    42k GitHub stars~3.1k tokensUpdated 9 days ago
    DevelopmentAuto-check passed
  • Legacy Modernizer

    Jeffallan/claude-skills

    Plans incremental migrations of aging systems with the strangler fig pattern, using dependency maps, rollback plans, characterization tests and gradual traffic shifts.

    12k GitHub stars~1.6k tokensUpdated 5 days ago
    DevelopmentAuto-check passed

More from gustavscirulis/snapgrid

All 118 skills in this repo
  • Interaction Design

    gustavscirulis/snapgrid

    Design and implement microinteractions, motion design, transitions, and user feedback patterns.

    117 GitHub starsUsed in 3 repos~2k tokens
    Auto-check passed
  • Account Deletion

    gustavscirulis/snapgrid

    Generates an Apple-compliant account deletion flow with multi-step confirmation UI, optional data export, configurable grace period, Keychain cleanup, and server-side deletion request.

    117 GitHub starsUsed in 1 repo~2.5k tokens
    Auto-check: notes
  • Alarmkit

    gustavscirulis/snapgrid

    AlarmKit integration for scheduling alarms and timers with custom UI, Live Activities, and snooze support.

    117 GitHub starsUsed in 1 repo~1.3k tokens
    Auto-check passed
  • Analytics Interpretation

    gustavscirulis/snapgrid

    Interpret app metrics and make data-driven decisions. An agent skill from gustavscirulis/snapgrid.

    117 GitHub starsUsed in 1 repo~4.1k tokens
    Auto-check passed
  • Analytics Setup

    gustavscirulis/snapgrid

    Generates protocol-based analytics infrastructure with swappable providers (TelemetryDeck, Firebase, Mixpanel).

    117 GitHub starsUsed in 1 repo~1.2k tokens
    Auto-check: notes
  • Announcement Banner

    gustavscirulis/snapgrid

    Generates an in-app announcement banner system with remote configuration, scheduling, deep link actions, and dismiss tracking.

    117 GitHub starsUsed in 1 repo~2.4k tokens
    Auto-check: notes

Categories

Questions about Characterization Test Generator

What does Characterization Test Generator do?

Generates tests that capture current behavior of existing code before refactoring. Characterization Test Generator is an agent skill from gustavscirulis/snapgrid. Generates tests that capture current behavior of existing code before refactoring.

When should I use Characterization Test Generator?

Characterization Test Generator fits situations like: you need a safety net before AI-assisted refactoring; modifying legacy code.

How do I install Characterization Test Generator in Claude Code?

Run `npx skills add gustavscirulis/snapgrid --skill characterization-test-generator -a claude-code`. Or copy the skill folder (.claude/skills/skills/testing/characterization-test-generator in gustavscirulis/snapgrid) into .claude/skills/characterization-test-generator in your project. Claude Code loads it when a task matches its description.

How do I install Characterization Test Generator in Codex?

Run `npx skills add gustavscirulis/snapgrid --skill characterization-test-generator -a codex`. Or copy the skill folder (.claude/skills/skills/testing/characterization-test-generator in gustavscirulis/snapgrid) into .agents/skills/characterization-test-generator in your project. Codex loads it when a task matches its description.

Can I use Characterization Test Generator in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add gustavscirulis/snapgrid --skill characterization-test-generator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/characterization-test-generator, .gemini/skills/characterization-test-generator, .github/skills/characterization-test-generator and .opencode/skills/characterization-test-generator in your project.

What does Characterization Test Generator need to run?

Going by SKILL.md and its folder, Characterization Test Generator needs the command-line tools its instructions call (xcodebuild). Its frontmatter pre-approves these tools: Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion.

Does Characterization Test Generator access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Characterization Test Generator safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Characterization Test Generator use?

Characterization Test Generator has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.

How many tokens does Characterization Test Generator use?

About 2k tokens (SKILL.md is roughly 7.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Characterization Test Generator?

Skills that share tags, products or a category with Characterization Test Generator: Code Refactoring Workflow (luongnv89/claude-howto, 42k stars), Modern JavaScript Patterns (wshobson/agents, 40k stars), Fowler-Style Refactoring (lhfer/claude-howto-zh-cn, 2.3k stars) and Extract Command from Git::Lib (ruby-git/ruby-git, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Characterization Test Generator?

gustavscirulis (a GitHub user) maintains it in gustavscirulis/snapgrid, which has 117 GitHub stars. The repository holds 118 skills in this directory. The repository was last updated on April 30, 2026.

Source: gustavscirulis/snapgrid on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.