Growing Outside In Systems
lexler/skill-factory
Drive feature development using Outside-In TDD with Hexagonal Architecture.
Strategic guidance for choosing and implementing testing approaches across the test pyramid.
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ancoleman/ai-design-components testing-strategies --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/testing-strategies .claude/skills/testing-strategies && rm -rf skills-srcUse ~/.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/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .claude/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategiesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ancoleman/ai-design-components testing-strategies --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/testing-strategies .agents/skills/testing-strategies && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .agents/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ancoleman/ai-design-components testing-strategies --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/testing-strategies .cursor/skills/testing-strategies && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .cursor/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ancoleman/ai-design-components.git --path skills/testing-strategies--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ancoleman/ai-design-components testing-strategies --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/testing-strategies .gemini/skills/testing-strategies && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .gemini/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ancoleman/ai-design-components testing-strategiesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/testing-strategies .github/skills/testing-strategies && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .github/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ancoleman/ai-design-components --skill testing-strategies -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ancoleman/ai-design-components testing-strategies --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ancoleman/ai-design-components.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/testing-strategies .opencode/skills/testing-strategies && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "testing-strategies" agent skill from https://github.com/ancoleman/ai-design-components/tree/main/skills/testing-strategies into .opencode/skills/testing-strategies/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "testing-strategies", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
testing-strategiesStrategic guidance for choosing and implementing testing approaches across the test pyramid.
Testing Strategies is an agent skill from ancoleman/ai-design-components. Strategic guidance for choosing and implementing testing approaches across the test pyramid. Use when building comprehensive test suites that balance unit, integration, E2E, and contract testing for optimal speed and confidence. Covers multi-language patterns (TypeScript, Python, Go, Rust) and modern best practices including property-based testing, test data management, and CI/CD integration.
Its SKILL.md is about 3.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files (for example `examples/python/hypothesis_property_test.py`, `examples/python/pytest_unit_test.py` and `examples/typescript/vitest-integration.test.ts`).
It sits in Testing & QA, covering Test strategy, Integration testing and End-to-end testing. It works with Python, Rust and TypeScript. The repository describes itself as: Comprehensive UI/UX and Backend component design skills for AI-assisted development with Claude. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76551b7. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships script files (Python and TypeScript), which the agent can run.
Shell commands in SKILL.md call:
vitestplaywrightpytestgoFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Testing Strategies loads about 3.8k tokens when it runs, and up to ~22k if it reads all its reference files. Until then it costs about 104 tokens; SKILL.md has 1,424 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from ancoleman/ai-design-components at commit 76551b7, republished under its MIT licence (© ancoleman). 1,424 words, ~3,821 tokens.
.claude/skills/testing-strategies/SKILL.md (or your agent's skills folder). This skill also uses 14 other files; get the full folder from GitHub.Build comprehensive, effective test suites by strategically selecting and implementing the right testing approaches across unit, integration, E2E, and contract testing levels.
This skill provides strategic frameworks for:
Testing is foundational to reliable software. With microservices architectures and continuous delivery becoming standard in 2025, strategic testing across multiple levels is more critical than ever.
Invoke this skill when:
The testing pyramid guides test distribution for optimal speed and confidence:
/\
/ \ E2E Tests (10%)
/----\ - Slow but comprehensive
/ \ - Full stack validation
/--------\
/ \ Integration Tests (20-30%)
/ \ - Moderate speed
/--------------\ - Component interactions
/ \
/------------------\ Unit Tests (60-70%)
- Fast feedback
- Isolated unitsKey Principle: More unit tests (fast, isolated), fewer E2E tests (slow, comprehensive). Integration tests bridge the gap.
Microservices Adjustment:
Cloud-Native Patterns:
For detailed pyramid guidance, see references/testing-pyramid.md.
START: Need to test [feature]
Q1: Does this involve multiple systems/services?
├─ YES → Q2
└─ NO → Q3
Q2: Is this a critical user-facing workflow?
├─ YES → E2E Test (complete user journey)
└─ NO → Integration or Contract Test
Q3: Does this interact with external dependencies (DB, API, filesystem)?
├─ YES → Integration Test (real DB, mocked API)
└─ NO → Q4
Q4: Is this pure business logic or a pure function?
├─ YES → Unit Test (fast, isolated)
└─ NO → Component or Integration Test| Feature | Test Type | Rationale |
|---|---|---|
calculateTotal(items) | Unit | Pure function, no dependencies |
POST /api/users endpoint | Integration | Tests API + database interaction |
| User registration flow (form → API → redirect) | E2E | Critical user journey, full stack |
| Microservice A → B communication | Contract | Service interface validation |
formatCurrency(amount, locale) | Unit + Property | Pure logic, many edge cases |
| Form validation logic | Unit | Isolated business rules |
| File upload to S3 | Integration | External service interaction |
For comprehensive decision frameworks, see references/decision-tree.md.
Purpose: Validate small, isolated units of code (functions, methods, components)
Characteristics:
When to Use:
Recommended Tools:
For detailed patterns, see references/unit-testing-patterns.md.
Purpose: Validate interactions between components, modules, or services
Characteristics:
When to Use:
Recommended Tools:
For detailed patterns, see references/integration-testing-patterns.md.
Purpose: Validate complete user workflows across the entire application stack
Characteristics:
When to Use:
Best Practices:
Recommended Tools:
For detailed patterns, see references/e2e-testing-patterns.md.
Purpose: Validate service interfaces and API contracts without full integration
When to Use:
Recommended Tool: Pact (pact.io) - supports TypeScript, Python, Go, Rust
For detailed patterns, see references/contract-testing.md.
Fixtures (Static Data):
Factories (Generated Data):
Property-Based Testing (Random Data):
Recommended Combination:
Property-Based Testing Tools:
For detailed strategies, see references/test-data-strategies.md.
| Dependency | Unit Test | Integration Test | E2E Test |
|---|---|---|---|
| Database | Mock (in-memory) | Real (test DB, Docker) | Real (staging DB) |
| External API | Mock (MSW, nock) | Mock (MSW, VCR) | Real (or staging) |
| Filesystem | Mock (in-memory FS) | Real (temp directory) | Real |
| Time/Date | Mock (freezeTime) | Mock (if deterministic) | Real (usually) |
| Environment Variables | Mock (setEnv) | Mock (test config) | Real (test env) |
| Internal Services | Mock (stub) | Real (or container) | Real |
Guiding Principles:
For detailed mocking patterns, see references/mocking-strategies.md.
Unit Testing with Vitest:
import { describe, test, expect } from 'vitest'
test('calculates total with tax', () => {
const items = [{ price: 10, quantity: 2 }]
expect(calculateTotal(items, 0.1)).toBe(22)
})Integration Testing with MSW:
import { setupServer } from 'msw/node'
import { http, HttpResponse } from 'msw'
const server = setupServer(
http.get('/api/user/:id', ({ params }) => {
return HttpResponse.json({ id: params.id, name: 'Test User' })
})
)E2E Testing with Playwright:
import { test, expect } from '@playwright/test'
test('user can checkout', async ({ page }) => {
await page.goto('https://example.com')
await page.getByRole('button', { name: 'Add to Cart' }).click()
await expect(page.getByText('1 item in cart')).toBeVisible()
})See examples/typescript/ for complete working examples.
Unit Testing with pytest:
def test_calculate_total_with_tax():
items = [{"price": 10, "quantity": 2}]
assert calculate_total(items, tax_rate=0.1) == 22Property-Based Testing with hypothesis:
from hypothesis import given, strategies as st
@given(st.lists(st.integers()))
def test_reverse_reverse_is_identity(lst):
assert reverse(reverse(lst)) == lstSee examples/python/ for complete working examples.
See examples/go/ and examples/rust/ for complete working examples in these languages.
Recommended Targets:
Anti-Pattern: Aiming for 100% coverage leads to testing trivial code and false confidence.
Coverage Tools:
Mutation testing introduces bugs and verifies tests catch them.
Tools:
For detailed coverage strategies, see references/coverage-strategies.md.
Stage 1: Pre-Commit (< 30 seconds)
Stage 2: On Commit (< 2 minutes)
Stage 3: Pull Request (< 5 minutes)
Stage 4: Pre-Merge (< 10 minutes)
Speed Up Test Runs:
vitest --threadsplaywright test --workers=4pytest -n auto (requires pytest-xdist)go test -parallel 4Problem: Too many E2E tests, too few unit tests Result: Slow test suites, flaky tests, long feedback loops Solution: Rebalance toward more unit tests, fewer E2E tests
Problem: Tests coupled to internal structure, not behavior Solution: Test behavior (inputs → outputs), not implementation
Problem: Mocking everything defeats purpose of integration tests Solution: Use real databases (ephemeral), mock only external APIs
Problem: Tests fail intermittently due to timing issues Solutions:
sleep(1000))For form testing: See building-forms skill for form-specific validation and submission testing patterns.
For API testing: See api-patterns skill for REST/GraphQL endpoint testing and contract validation.
For CI/CD pipelines: See building-ci-pipelines skill for test automation, parallel execution, and coverage reporting.
For data visualization testing: See visualizing-data skill for snapshot testing chart configurations and visual regression testing.
For deeper exploration of specific topics:
references/testing-pyramid.md - Detailed testing pyramid framework and balancing strategiesreferences/decision-tree.md - Comprehensive decision frameworks for test type selectionreferences/unit-testing-patterns.md - Unit testing patterns across languagesreferences/integration-testing-patterns.md - Integration testing with databases, APIs, and containersreferences/e2e-testing-patterns.md - E2E testing best practices and Playwright patternsreferences/contract-testing.md - Consumer-driven contract testing with Pactreferences/test-data-strategies.md - Fixtures, factories, and property-based testingreferences/mocking-strategies.md - When and how to mock dependenciesreferences/coverage-strategies.md - Meaningful coverage metrics and mutation testingComplete, runnable code examples are available in the examples/ directory:
examples/typescript/ - Vitest unit/integration, Playwright E2E, MSW mocking, fast-check property testsexamples/python/ - pytest unit/integration, fixtures, Playwright E2E, hypothesis property testsexamples/go/ - stdlib testing, testify assertions, httptest integrationexamples/rust/ - cargo test unit tests, proptest property tests, integration patternsAll examples include dependencies, usage instructions, and error handling.
© ancoleman, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 14 other files (references) in skills/testing-strategies of ancoleman/ai-design-components.
Open the folder on GitHubat commit 76551b7
Testing Strategies 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Testing Strategies this skillancoleman/ai-design-components | 526 | — | ~3.8k | Automated safety check: Pass | MIT | |
| Growing Outside In Systemslexler/skill-factory | 239 | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Testing Patternssoftspark/ai-toolkit | 179 | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Java SDK E2E Test with Replay Snapshotgithub/copilot-sdk | 11k | — | ~1.8k | Automated safety check: Pass | MIT | |
| Robotics Testingarpitg1304/robotics-agent-skills | 368 | — | ~4.7k | Automated safety check: Pass | Apache-2.0 | |
| Maintainopenwpm/OpenWPM | 1.4k | — | ~1.5k | Automated safety check: Pass | Custom licence |
lexler/skill-factory
Drive feature development using Outside-In TDD with Hexagonal Architecture.
softspark/ai-toolkit
Testing strategy: pyramid, AAA, mocks/fakes/stubs, flaky tests, coverage.
github/copilot-sdk
Creates a Java SDK end-to-end test for the Copilot SDK that runs against a recorded YAML snapshot through a replay proxy, so CI needs no real authentication.
arpitg1304/robotics-agent-skills
Testing strategies, patterns, and tools for robotics software.
openwpm/OpenWPM
A skill your agent uses to run a periodic codebase-health pass — dependency audit, lint, test suite, dead code / TODO scan, doc freshness, crosslink issue hygiene, and build artifacts.
boshi-xixixi/TraeSkill
Generates comprehensive, workable unit tests for any programming language using a multi-agent pipeline.
ancoleman/ai-design-components
Builds AI chat interfaces and conversational UI with streaming responses, context management, and multi-modal support.
ancoleman/ai-design-components
Builds form components and data collection interfaces including contact forms, registration flows, checkout processes, surveys, and settings pages.
ancoleman/ai-design-components
Builds tables and data grids for displaying tabular information, from simple HTML tables to complex enterprise data grids.
ancoleman/ai-design-components
Creates comprehensive dashboard and analytics interfaces that combine data visualization, KPI cards, real-time updates, and interactive layouts.
ancoleman/ai-design-components
Designs layout systems and responsive interfaces including grid systems, flexbox patterns, sidebar layouts, and responsive breakpoints.
ancoleman/ai-design-components
Displays chronological events and activity through timelines, activity feeds, Gantt charts, and calendar interfaces.
Works with
Categories
Strategic guidance for choosing and implementing testing approaches across the test pyramid. Testing Strategies is an agent skill from ancoleman/ai-design-components. Strategic guidance for choosing and implementing testing approaches across the test pyramid.
Testing Strategies fits situations like: building comprehensive test suites that balance unit; contract testing for optimal speed and confidence.
Run `npx skills add ancoleman/ai-design-components --skill testing-strategies -a claude-code`. Or copy the skill folder (skills/testing-strategies in ancoleman/ai-design-components) into .claude/skills/testing-strategies in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ancoleman/ai-design-components --skill testing-strategies -a codex`. Or copy the skill folder (skills/testing-strategies in ancoleman/ai-design-components) into .agents/skills/testing-strategies in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ancoleman/ai-design-components --skill testing-strategies -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/testing-strategies, .gemini/skills/testing-strategies, .github/skills/testing-strategies and .opencode/skills/testing-strategies in your project.
Going by SKILL.md and its folder, Testing Strategies needs Python and TypeScript for the scripts in its folder and the command-line tools its instructions call (vitest, playwright, pytest and go). Our summary lists: Python 3; Node.js; Docker.
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.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Testing Strategies is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 18k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Testing Strategies: Growing Outside In Systems (lexler/skill-factory, 239 stars), Testing Patterns (softspark/ai-toolkit, 179 stars), Java SDK E2E Test with Replay Snapshot (github/copilot-sdk, 11k stars) and Robotics Testing (arpitg1304/robotics-agent-skills, 368 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ancoleman (a GitHub user) maintains it in ancoleman/ai-design-components, which has 526 GitHub stars. The repository holds 75 skills in this directory. The repository was last updated on December 11, 2025.
Source: ancoleman/ai-design-components on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.