Work Avoidance Techniques¶
Techniques for detecting when work can be safely skipped.
Layer Your Checks
Start with cheap checks (existence), then content hashes, then semantic comparison. Each layer catches different scenarios.
Overview¶
Each technique answers a specific question:
| Technique | Question | Best For |
|---|---|---|
| Content Hashing | "Is the content different?" | File comparisons, config sync |
| Volatile Field Exclusion | "Did anything meaningful change?" | Version bumps, timestamps |
| Existence Checks | "Does it already exist?" | Resource creation (PRs, branches) |
| Cache-Based Skip | "Is the output already built?" | Build artifacts, dependencies |
| Queue Cleanup | "Should queued work execute?" | Mutex-locked workflows |
Combining Techniques¶
Techniques can be layered for maximum efficiency:
flowchart TD
subgraph layer1[Layer 1: Existence]
Exists{Resource exists?}
end
subgraph layer2[Layer 2: Content]
Hash{Content hash matches?}
end
subgraph layer3[Layer 3: Semantic]
Volatile{Only volatile fields changed?}
end
subgraph action[Action]
Skip[Skip]
Execute[Execute]
end
Exists -->|Yes| Hash
Exists -->|No| Execute
Hash -->|Yes| Skip
Hash -->|No| Volatile
Volatile -->|Yes| Skip
Volatile -->|No| Execute
%% Ghostty Hardcore Theme
style Exists fill:#65d9ef,color:#1b1d1e
style Hash fill:#fd971e,color:#1b1d1e
style Volatile fill:#9e6ffe,color:#1b1d1e
style Skip fill:#5e7175,color:#f8f8f3
style Execute fill:#a7e22e,color:#1b1d1e
Choosing a Technique¶
| Scenario | Recommended Technique |
|---|---|
| File distribution with version bumps | Volatile Field Exclusion |
| OCI image rebuilds | Content Hashing |
| PR/branch creation | Existence Checks |
| Dependency installation | Cache-Based Skip |
| API state synchronization | Content Hashing |
| Generated file deployment | Volatile Field Exclusion |
| Idempotent workflows with mutex locks | Queue Cleanup |
Related¶
- Work Avoidance Overview - Pattern introduction
- Anti-Patterns - Common mistakes to avoid