openreachtech/hora-skills-ort-core/hoc-async

Claude Code and agent skill by openreachtech/hora-skills-ort-core

Trust tier 2
  • community
LLM review pending
Source check pending

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-async

SKILL.md

Shared: Async

Conventions related to writing asynchronous code.

Promise

  • When writing Promises, use async/await whenever 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 then member 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

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
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/openreachtech/hora-skills-ort-core/hoc-async/badge)](https://verified-skill.com/skills/openreachtech/hora-skills-ort-core/hoc-async)

Something wrong with this skill or its page? Tell us.