tdd-disciplinelisted
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