accessibility-wcag
Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing
Test-driven development workflow with Red-Green-Refactor cycle across languages
Claude Code
$ npx -y skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery --agent claude-code
Codex
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a codex -y
Cursor
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a cursor -y
Gemini CLI
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a gemini-cli -y
GitHub Copilot
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a github-copilot -y
OpenCode
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a opencode -y
Windsurf
$ npx skills add rohitg00/awesome-claude-code-toolkit --skill tdd-mastery -a windsurf -y
name: tdd-mastery description: Test-driven development workflow with Red-Green-Refactor cycle across languages
1. **Red** - Write a failing test that defines the desired behavior 2. **Green** - Write the minimum code to make the test pass 3. **Refactor** - Clean up while keeping tests green
Never write production code without a failing test first. Each cycle should take 2-10 minutes.
Use the Arrange-Act-Assert pattern consistently:
Arrange: Set up test data and dependencies Act: Execute the behavior under test Assert: Verify the expected outcome
Name tests as `test_<unit>_<scenario>_<expected_result>` or `it("should <behavior> when <condition>")`.
describe("OrderService", () => {
it("should apply discount when order exceeds threshold", () => {
const order = createOrder({ items: [{ price: 150, qty: 1 }] });
const result = applyDiscount(order, { threshold: 100, percent: 10 });
expect(result.total).toBe(135);
});
it("should throw when applying discount to empty order", () => {
const order = createOrder({ items: [] });
expect(() => applyDiscount(order, defaultDiscount)).toThrow(EmptyOrderError);
});
});Use `vi.fn()` / `jest.fn()` for mocks. Prefer dependency injection over module mocking. Use `beforeEach` for shared setup, never share mutable state between tests.
@pytest.fixture
def db_session():
session = create_test_session()
yield session
session.rollback()
def test_create_user_stores_hashed_password(db_session):
user = UserService(db_session).create(email="a@b.com", password="secret")
assert user.password_hash != "secret"
assert verify_password("secret", user.password_hash)
@pytest.mark.parametrize("input,expected", [
("", False),
("short", False),
("ValidPass1!", True),
])
def test_password_validation(input, expected):
assert validate_password(input) == expectedUse `pytest.raises` for exceptions. Use `conftest.py` for shared fixtures. Mark slow tests with `@pytest.mark.slow`.
func TestParseConfig(t *testing.T) {
tests := []struct {
name string
input string
want Config
wantErr bool
}{
{"valid yaml", "port: 8080", Config{Port: 8080}, false},
{"empty input", "", Config{}, true},
{"invalid port", "port: -1", Config{}, true},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
got, err := ParseConfig([]byte(tt.input))
if (err != nil) != tt.wantErr {
t.Errorf("ParseConfig() error = %v, wantErr %v", err, tt.wantErr)
return
}
if !tt.wantErr && got != tt.want {
t.Errorf("ParseConfig() = %v, want %v", got, tt.want)
}
})
}
}Use table-driven tests by default. Use `t.Helper()` in test utility functions. Use `testify/assert` only if the team already uses it.
| Level | Scope | Speed | Dependencies | |-------|-------|-------|-------------| | Unit | Single function/class | <100ms | None (mock all) | | Integration | Module boundaries | <5s | Real DB, real FS | | E2E | Full user flow | <30s | Full stack |
Ratio target: 70% unit, 20% integration, 10% e2e.
# Jest/Vitest vitest run --coverage --coverage.thresholds.lines=80 --coverage.thresholds.branches=75 # pytest pytest --cov=src --cov-fail-under=80 --cov-branch # Go go test -coverprofile=cover.out -coverpkg=./... ./... go tool cover -func=cover.out
The most comprehensive toolkit for Claude Code -- 135 agents, 35 curated skills (+400,000 via SkillKit), 42 commands, 176+ plugins, 20 hooks, 15 rules, 7 templates, 15 MCP configs, 26 companion apps, 53 ecosystem entries, and more.
Web accessibility patterns for WCAG 2.2 compliance including ARIA, keyboard navigation, screen readers, and testing
Route broad or ambiguous AgentKit SEO work to the right module while keeping context scoped. Use when a request spans multiple…
REST API design with resource naming, pagination, versioning, and OpenAPI spec generation
Authentication and authorization patterns including OAuth2, JWT, RBAC, session management, and PKCE flows
AWS cloud patterns for Lambda, ECS, S3, DynamoDB, and Infrastructure as Code with CDK/Terraform
CI/CD pipeline patterns for GitHub Actions, GitLab CI, testing strategies, and deployment automation
You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…
Ask which skill or flow fits your situation. A router over the skills in this repo.