Cleanup Failure Paths
SkillDev toolsAudits your Go functions to make sure every acquired resource gets cleaned up when the function exits early or fails.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Cleanup Failure Paths skill
About this capability
Partial-failure cleanup audit for Compozy Go functions. Use when a changed function acquires, registers, starts, claims, leases, or opens more than one fallible resource before returning. Do not use for pure transformations, read-only helpers, or test-only code.
What this skill tells your AI
The instructions your AI receives, as published by compozy/compozy in .agents/skills/eng/eng-cleanup-failure-paths/SKILL.md and read by ahel’s review.
Prove ownership across the affected function's acquisitions and exits. Account for the whole lifetime when a local edit changes cleanup; a matrix in working notes is useful for complex ownership, not a required report.
- Identify acquired resources, their owners, cleanup/error policy, shutdown order, and any explicit ownership transfer. Use the matching rows of
references/cleanup-table.md; read the complete table when the ownership chain spans its rules. - Walk success, error, cancellation, and reachable recovery exits after each acquisition. Release or transfer every live resource. Preserve the primary error and handle secondary cleanup failures.
- Keep responses and writers request-bound. Detached execution needs a bounded lifetime and cancel/stop surface; subprocess trees retain process-group parity and cancel-then-grace shutdown.
- Repair affected exits together. Split ownership when it cannot be proved locally, not because a function crosses an arbitrary defer-count threshold. Leave unrelated cleanup debt outside the change.
Before changing coverage, name the invariant, owning layer, and existing suite. Use eng-consolidate-test-suites only if placement is unclear and eng-test-conventions for Go test shape. references/test-failure-paths.md supplies patterns for the distinct failure class being changed. Reuse coverage that already proves the invariant; multiple syntactic returns do not imply multiple tests.
Inject failures through an interface or real I/O boundary and assert actual release, reuse, closure, or termination. A mock-call count alone does not prove cleanup. Complete when affected ownership paths are sound and their owning checks pass; the enclosing workstream owns delivery gates.
Signals
- GitHub stars
- 3k
- Forks
- 178
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
eng-cleanup-failure-paths- Source
- github.com/compozy/compozy