← ClaudeAtlas

tdd-disciplinelisted

Enforces test-driven development with Red-Green-Refactor cycle. Use when writing new code, implementing features, fixing bugs, or when tests are mentioned. Ensures tests are written before implementation.
Elmmly/genie-team · ★ 3 · Testing & QA · score 67
Install: claude install-skill Elmmly/genie-team
# TDD Discipline You MUST follow strict test-first development. This is NOT optional. ## The Cycle ``` RED → GREEN → REFACTOR → (repeat) ``` ## Phase 1: RED (Write Failing Tests) Write ALL tests BEFORE any implementation code. **Requirements:** - Tests define expected behavior from requirements/design - Use Arrange-Act-Assert (AAA) pattern - Run tests and CONFIRM they fail - Do NOT write implementation during this phase **AAA Pattern by Language:** **TypeScript (Jest/Vitest):** ```typescript // Arrange const user = createTestUser({ role: 'admin' }); const request = mockRequest({ userId: user.id }); // Act const result = await authService.validateAccess(request); // Assert expect(result.allowed).toBe(true); ``` **Go:** ```go // Arrange user := createTestUser(t, "admin") req := mockRequest(user.ID) // Act result, err := authService.ValidateAccess(req) // Assert require.NoError(t, err) assert.True(t, result.Allowed) ``` **Rust:** ```rust // Arrange let user = create_test_user(Role::Admin); let request = mock_request(user.id); // Act let result = auth_service.validate_access(&request).unwrap(); // Assert assert!(result.allowed); ``` **C# (xUnit):** ```csharp // Arrange var user = CreateTestUser(role: "admin"); var request = MockRequest(userId: user.Id); // Act var result = await _authService.ValidateAccess(request); // Assert Assert.True(result.Allowed); ``` **Java (JUnit 5):** ```java // Arrange var user = createTestUser("admin"); var request = mockRequest(us