google-labs-code/tdd-red-green-refactor
> Enforces a disciplined Red-Green-Refactor (TDD) workflow in TypeScript/Node.js. Use this whenever creating new features, fixing bugs, or migrating logic to ensure high-quality, verifiable implementations.
npx skills add https://github.com/google-labs-code/design.md --skill tdd-red-green-refactor
This skill implements a structural framework for AI-assisted programming to ensure every line of code is verifiable, typed, and purposeful.
You must prove the feature does not exist and that your test is valid.
ReferenceError: add is not defined) and not a configuration error.Make the test pass as quickly and simply as possible.
Improve the code structure while maintaining the "Green" state.
You are strictly forbidden from writing a large "splurge" of multiple tests at once. You must follow a strictly incremental loop:
Use automated assertions and strong typing (TypeScript) as backpressure to prevent the AI from "guessing" the solution or "playing in the mud" with low-quality code.
Never modify an existing test to make a failing implementation pass. If a test must change, it must be because the requirement changed, not because the code is difficult to write.
Step 1: Red
// math.test.ts
import { describe, it, expect } from 'vitest';
import { add } from './math';
describe('add', () => {
it('should sum two numbers', () => {
expect(add(2, 2)).toBe(4); // Fails: ReferenceError: add is not defined
});
});
Step 2: Green
// math.ts
export const add = (a: any, b: any) => {
return 4; // Passes: Minimal code to satisfy the test
};
Step 3: Refactor
// math.ts
/**
* Sums two numbers with explicit type safety.
*/
export const add = (a: number, b: number): number => {
return a + b; // Passes: Proper implementation with safety net
};
Take google-labs-code/tdd-red-green-refactor from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.