Agent skill · software engineering · erichowens
execution-lifecycle-manager
Manage DAG execution lifecycles including start, stop, pause, resume, and cleanup. Activate on 'execution lifecycle', 'stop execution', 'abort DAG', 'graceful shutdown', 'kill process'. NOT for cost estimation, DAG building, or skill selection.
Why this skill is useful
Adds specific patterns and code snippets for managing DAG execution lifecycles that the AI wouldn't reliably generate on its own.
What it needs
About 2k tokens when loaded. Last updated 2026-07-14. 180 stars on the source repository.
What this skill does
Execution Lifecycle Manager Centralized state management for running DAG executions with graceful shutdown patterns. When to Use ✅ Use for: Implementing execution start/stop/pause/resume controls Graceful process termination (SIGTERM → SIGKILL) Tracking active executions across the system Cleaning up orphaned processes Implementing abort handlers with cost tracking ❌ NOT for: Cost estimation or pricing calculations (use cost-accrual-tracker) Building or modifying DAG structures Skill matching or selection Process spawning (use the executor directly) Core Patterns 1. Graceful Shutdown Pattern Always use SIGTERM first, then escalate to SIGKILL: 2. AbortController Pattern Use AbortController for cancellation propagation: 3. Execution Registry Pattern Track active executions for monitoring and cleanup: Anti-Patterns SIGKILL Without SIGTERM Novice thinking: "Just kill it immediately" Reality: SIGKILL doesn't allow cleanup. Processes can't: Flush buffers to disk Close network connections gracefully Release locks Save partial progress Timeline: Always: SIGTERM allows graceful shutdown If stuck after 2-5s: Then use SIGKILL Correct approach: Always SIGTERM first, SIGKILL as fallback. Missing Abort Signal Propagation Novice thinking: "Just track the top-level execution" Reality: Without signal propagation, child processes become orphans: Parent dies, children keep running Resources leak Costs continue accruing Correct approach: Pass AbortSignal through entire execution tree. Synchronous Stop Handler Novice thinking: "Stop should return immediately" Reality: Stopping is async - processes need time to terminate: Network requests need to timeout File handles need to close Costs need final calculation Correct approach: Return Promise with final state after cleanup completes. …
How to use it
Reference it in AdaL, Claude Code, Cursor or any coding agent — nothing to install:
@skills erichowens/execution-lifecycle-manager