Guide for making improvements to existing ClaudeBar functionality using TDD...
Make improvements to existing functionality using TDD and rich domain design.
| Scenario | Skill to Use |
|---|---|
| Enhance existing behavior | improvement (this skill) |
| Fix broken behavior | fix-bug |
| Add new feature | implement-feature |
| Add new AI provider | add-provider |
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 1. UNDERSTAND CURRENT STATE โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Read existing code โ
โ โข Understand current behavior โ
โ โข Identify what to improve โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 2. WRITE TEST FOR IMPROVED BEHAVIOR (Red) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Test describes the IMPROVED behavior โ
โ โข Test should FAIL initially โ
โ โข Keep existing tests passing โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โผ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ 3. IMPLEMENT & VERIFY (Green) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ โข Implement the improvement โ
โ โข New test PASSES โ
โ โข All existing tests still pass โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Enhance user experience without changing core logic:
Examples:
- Settings view scrolls on small screens
- Better loading indicators
- Improved accessibility
- Cleaner visual layout
Test approach: UI behavior tests or manual verification
Enhance domain model behavior:
Examples:
- Add computed property for common queries
- Improve status calculation
- Add convenience methods
- Better encapsulation
Test approach: State-based domain tests
@Test func `model provides convenient access to lowest quota`() {
// Given
let snapshot = UsageSnapshot(quotas: [quota1, quota2, quota3])
// Then - new convenience property
#expect(snapshot.lowestQuota == quota2)
}
Enhance probes, storage, or adapters:
Examples:
- Better error messages
- More robust parsing
- Improved timeout handling
- Caching support
Test approach: Behavior tests with mocked dependencies
Optimize existing functionality:
Examples:
- Reduce redundant API calls
- Lazy loading
- Parallel execution
- Caching
Test approach: Behavior tests (same results, better performance)
@Suite
struct {Component}Tests {
@Test func `{describes improved behavior}`() {
// Given - standard setup
let component = Component(...)
// When - action
let result = component.improvedMethod()
// Then - verify improved behavior
#expect(result.hasImprovedProperty)
}
}
Improvements should NOT break existing behavior:
# Run all tests to ensure no regressions
swift test
Full documentation: docs/architecture/ARCHITECTURE.md
| Layer | Location | Improvement Examples |
|---|---|---|
| Domain | Sources/Domain/ |
New computed properties, convenience methods |
| Infrastructure | Sources/Infrastructure/ |
Better parsing, error handling |
| App | Sources/App/ |
UI enhancements, accessibility |
swift test)