Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Guide for fixing bugs in ClaudeBar following Chicago School TDD and rich domain design. Use this skill when: (1) User reports a bug or unexpected behavior (2) Fixing a defect in existing functionality (3) User asks "fix this bug" or "this doesn't work correctly" (4) Correcting behavior that violates the user's mental model
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-16 | ✗→✓ | ▲ Improved | 28% | 0% |
| case-21 | ✓→✗ | ▼ Worse | -46% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -9% | 0% |
| case-05 | ✓→✓ | = Same ✓ | 92% | 0% |
| case-06 | ✓→✓ | = Same ✓ | 152% | 0% |
Fix bugs using Chicago School TDD, root cause analysis, and rich domain design.
┌─────────────────────────────────────────────────────────────┐
│ 1. REPRODUCE & UNDERSTAND │
├─────────────────────────────────────────────────────────────┤
│ • Reproduce the bug │
│ • Identify expected vs actual behavior │
│ • Locate the root cause in code │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 2. WRITE FAILING TEST (Red) │
├─────────────────────────────────────────────────────────────┤
│ • Write test that exposes the bug │
│ • Test should FAIL before fix │
│ • Test should verify CORRECT behavior │
└─────────────────────────────────────────────────────────────┘
│
▼
┌─────────────────────────────────────────────────────────────┐
│ 3. FIX & VERIFY (Green) │
├─────────────────────────────────────────────────────────────┤
│ • Implement minimal fix │
│ • Test now PASSES │
│ • All existing tests still pass │
└─────────────────────────────────────────────────────────────┘> Reference: docs/ARCHITECTURE.md
| Layer | Location | What to look for | |-------|----------|------------------| | Domain | Sources/Domain/ | Incorrect business logic, missing invariants | | Infrastructure | Sources/Infrastructure/ | Parsing errors, CLI/API issues | | App | Sources/App/ | View state issues, binding problems |
Check if the bug violates domain invariants that should be maintained:
swift// Example: QuotaMonitor should maintain selection invariants // - selectedProviderId should always point to an enabled provider // - Domain should be self-validating (no external "ensure" calls needed)
We follow Chicago School TDD (state-based testing):
verify() calls - assert on resulting state insteadTest the CORRECT behavior, not the bug:
swift@Suite struct {Component}Tests { @Test func `{describes correct behavior}`() { // Given - setup that triggers the bug scenario let settings = makeSettingsRepository() let claude = ClaudeProvider(probe: MockUsageProbe(), settingsRepository: settings) claude.isEnabled = false // Bug trigger condition // When - action that should work correctly let monitor = QuotaMonitor(providers: AIProviders(providers: [claude, codex])) // Then - assert EXPECTED behavior (will FAIL before fix) #expect(monitor.selectedProviderId == "codex") // Not "claude" } }
| Bug Location | Test Location | |--------------|---------------| | Sources/Domain/Monitor/ | Tests/DomainTests/Monitor/ | | Sources/Domain/Provider/ | Tests/DomainTests/Provider/ | | Sources/Infrastructure/CLI/ | Tests/InfrastructureTests/CLI/ |
bashswift test --filter "{TestSuiteName}"
When fixing domain bugs, ensure:
swift// 1. Domain maintains its own invariants public init(...) { // Validate on construction selectFirstEnabledIfNeeded() // Called internally, not externally } // 2. Public API hides implementation details public func setProviderEnabled(_ id: String, enabled: Bool) { provider.isEnabled = enabled if !enabled { selectFirstEnabledIfNeeded() // Private - called automatically } } // 3. Private methods for internal invariant maintenance private func selectFirstEnabledIfNeeded() { ... }
bash# Run the specific test (should PASS now) swift test --filter "{TestSuiteName}" # Run ALL tests to ensure no regressions swift test
Other measured skills in the registry, with their headline benchmark lift.