typescript-async
Installation
SKILL.md
House skill. Pair with typescript-common-practice and javascript-runtime when event-loop semantics are load-bearing. This skill owns async lifecycle and concurrency correctness, not generic testing or browser UX.
Every Promise needs an owner
For every started async operation, answer who owns its completion and failure.
A Promise should normally be:
- awaited;
- returned to a caller that owns it; or
- deliberately detached under an explicit lifecycle, with rejection handling and shutdown/cancellation behavior.
A floating Promise is not "background work" by default. It is work whose failure and lifetime are unowned.
Use void only when detachment is intentional and the rejection/lifecycle is handled elsewhere; do not use it to silence a linter around accidental fire-and-forget work.
Async collection operations
Array forEach does not await an async callback.