testing-tdd-london-1-outside-in-development
Sub-skill of testing-tdd-london: 1. Outside-In Development (+2).
Best use case
testing-tdd-london-1-outside-in-development is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Sub-skill of testing-tdd-london: 1. Outside-In Development (+2).
Teams using testing-tdd-london-1-outside-in-development should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/1-outside-in-development/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How testing-tdd-london-1-outside-in-development Compares
| Feature / Agent | testing-tdd-london-1-outside-in-development | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Sub-skill of testing-tdd-london: 1. Outside-In Development (+2).
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
Related Guides
SKILL.md Source
# 1. Outside-In Development (+2)
## 1. Outside-In Development
```typescript
// Start with acceptance test (outermost layer)
describe('User Registration Feature', () => {
it('should register new user successfully', async () => {
// Mock all collaborators
const mockRepository = {
save: jest.fn().mockResolvedValue({ id: '123', email: 'test@example.com' }),
findByEmail: jest.fn().mockResolvedValue(null)
};
*See sub-skills for full details.*
## 2. Interaction Testing
```typescript
describe('Order Processing', () => {
it('should follow proper workflow interactions', async () => {
const mockPayment = { charge: jest.fn().mockResolvedValue({ success: true }) };
const mockInventory = { reserve: jest.fn().mockResolvedValue(true) };
const mockShipping = { schedule: jest.fn().mockResolvedValue({ trackingId: 'ABC' }) };
const service = new OrderService(mockPayment, mockInventory, mockShipping);
await service.processOrder(order);
*See sub-skills for full details.*
## 3. Contract Definition Through Mocks
```typescript
// Define contracts for collaborators
const userServiceContract = {
register: {
input: { email: 'string', password: 'string' },
output: { success: 'boolean', id: 'string' },
collaborators: ['UserRepository', 'NotificationService'],
interactions: [
{ method: 'findByEmail', args: ['email'], returns: 'null|User' },
{ method: 'save', args: ['User'], returns: 'User' },
*See sub-skills for full details.*Related Skills
oss-wiki-development-arc
Three-phase methodology (Substrate → Depth → Quality) for building open-source engineering wikis efficiently. Skip 70%+ of empirical iteration cost by pre-loading the pattern.
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code. Enforces RED-GREEN-REFACTOR cycle with test-first approach.
subagent-driven-development
Use when executing implementation plans with independent tasks. Dispatches fresh delegate_task per task with two-stage review (spec compliance then code quality).
webapp-testing
Web application testing toolkit using Playwright with Python. Use for verifying frontend functionality, debugging UI behavior, capturing browser screenshots, viewing browser logs, and automating web interactions.
testing-tdd-london
TDD London School (mockist) specialist for mock-driven, outside-in development. Use for behavior verification testing, contract-driven development, testing object collaborations, or when focusing on HOW objects interact rather than WHAT they contain.
testing-production
Production validation specialist ensuring applications are fully implemented and deployment-ready. Use to verify no mock/stub/fake implementations remain, validate against real databases and APIs, perform end-to-end testing with actual systems, and confirm production readiness.
raycast-alfred-1-raycast-extension-development
Sub-skill of raycast-alfred: 1. Raycast Extension Development (+2).
docker-6-development-workflow-scripts
Sub-skill of docker: 6. Development Workflow Scripts.
docker-3-docker-compose-for-development
Sub-skill of docker: 3. Docker Compose for Development.
n8n-7-custom-node-development
Sub-skill of n8n: 7. Custom Node Development.
github-actions-2-matrix-builds-for-cross-platform-testing
Sub-skill of github-actions: 2. Matrix Builds for Cross-Platform Testing.
activepieces-6-custom-piece-development
Sub-skill of activepieces: 6. Custom Piece Development.