Loading...
Loading...
Compares two `tuist cache` runs to identify cache hit rate changes and root-cause analysis of cache invalidation. Can be invoked with cache run IDs, dashboard URLs, or branch names.
npx skill4agent add tuist/agent-skills compare-cache-runstuist cache-run list --jsontuist cache-run show <id> --jsontuist cache-run show <base-id> --json
tuist cache-run show <head-id> --jsontuist cache-run list --git-branch <base-branch> --json --page-size 1
tuist cache-run list --git-branch <head-branch> --json --page-size 1tuist cache-run show <id> --jsonmain| Metric | What to check |
|---|---|
| Flag if head is >10% slower |
| Flag if base succeeded but head failed |
| Note if target count changed |
| Compare local hit counts |
| Compare remote hit counts |
| Note if one is CI and the other local |
(local_hits + remote_hits) / cacheable_targets * 100head_rate - base_ratetuist cachetuist generatedependenciesgit diff| Cause | Description |
|---|---|
| Source changes | Files in the target's source directory were modified |
| Resource changes | Assets, XIBs, storyboards, or other resources changed |
| Build settings | Target or project build settings were modified |
| Dependency changes | An external dependency version changed |
| Info.plist changes | The target's Info.plist was modified |
| Entitlements changes | The entitlements file was modified |
| Deployment target | The minimum deployment target changed |
| Headers | Public or project headers changed |
| Project settings | Shared project-level settings changed |
tuist cachecommand_argumentsCache Run Comparison: base (run-123 on main) vs head (run-456 on feature-x)
Duration: 95.2s -> 142.8s (+50%) -- REGRESSION
Cache hit rate: 88% (44/50) -> 60% (30/50) (-28%) -- REGRESSION
Status: success -> success
Root cause: CoreModule had source changes (5 files modified).
This cascaded to 14 downstream targets that depend on CoreModule.
Cache invalidation breakdown:
- Direct changes: CoreModule (sources changed)
- Cascade: UIKit, Networking, Analytics, + 11 others (dependency hash changed)
Recommendations:
- Consider splitting CoreModule into smaller, more focused modules
- Use interface/implementation module pattern for frequently-changed modules
- Run `tuist cache` on the feature branch after rebasing to warm caches