openreachtech/hora-skills-ort-core/hoc-async
Claude Code and agent skill by openreachtech/hora-skills-ort-core
- community
Checking that the SKILL.md file is still in the repository.
Conventions for writing asynchronous code: how a promise is written, and what becomes of a value that crosses the boundary one makes. Use when writing or awaiting a promise, when making an existing member async, or when a value returned through one stops behaving like itself. Test doubles for async members belong to the Jest convention.
Install
npx vskill@latest install openreachtech/hora-skills-ort-core/hoc-asyncSKILL.md
Shared: Async
Conventions related to writing asynchronous code.
Promise
- When writing Promises, use
async/awaitwhenever possible.
A value that crosses the boundary a promise makes
Making one member async is not a local change. Every caller becomes async with it, and the value it hands back now travels through a promise instead of being returned directly — so properties of that value which nothing used to inspect begin to matter.
What inspects it is the promise itself, and what it looks for is `then`. A value answering that lookup with a function is taken for a thenable: the promise calls it as then(resolve, reject) and settles to whatever that call passes on, so the value is replaced by something it was never meant to produce.
Nothing reports it. The call lands inside the value's own code carrying arguments it has no reason to expect, and the failure surfaces wherever that code first reads one of them — a long way from the await that caused it, and wearing the shape of an ordinary bug.
- A value that answers every property lookup must refuse `then`. Where a lookup is answered
by producing something — a handler built per key, a member resolved on demand — then is produced too, and the value becomes a thenable by accident. Answer it as absent, and answer the symbol keys the same way.
- The hazard is the probe, not whatever answered it. Any value carrying a
thenmember meets
it, so a class that happens to define one is caught in the same way. The rule is about what crosses the boundary, never about how the value was built.
- It appears only once the boundary is there. The same value returned directly is never
probed, which is why making a member async is where this is met rather than where the value was written.
Security
- Security scanPassed, 100 of 100Pattern checks on the skill's files.
- Model reviewNot runA model review is scheduled for the next rescan.
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingkit/skills/hoc-async/SKILL.md
Popularity
- Repository stars
- 17
- 7-day trend score
- 0
Stars and forks are for the whole GitHub repository, not this skill alone. Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/openreachtech/hora-skills-ort-core/hoc-async)