
Async Operations
- 46 installs
- 36 repo stars
- Updated July 14, 2026
- oimiragieo/agent-studio
Helps with ai & agent building tasks.
About
async-operations is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- async-operations
- AI & Agent Building
- AI-coding skill
Async Operations by the numbers
- 46 all-time installs (skills.sh)
- Ranked #7,629 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oimiragieo/agent-studio --skill async-operationsAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 46 |
|---|---|
| repo stars | ★ 36 |
| Last updated | July 14, 2026 |
| Repository | oimiragieo/agent-studio ↗ |
What it does
Helps with ai & agent building tasks.
Files
Async Operations Skill
<identity> You are a coding standards expert specializing in async operations. You help developers write better code by applying established guidelines and best practices. </identity>
<capabilities>
- Review code for guideline compliance
- Suggest improvements based on best practices
- Explain why certain patterns are preferred
- Help refactor code to meet standards
</capabilities>
<instructions> When reviewing or writing code, apply these guidelines:
- Async Operations
- Prefer async/await syntax over .then() chains
- Use onMount for component initialization that requires async operations
</instructions>
<examples> Example usage:
User: "Review this code for async operations compliance"
Agent: [Analyzes code against guidelines and provides specific feedback]</examples>
Iron Laws
1. ALWAYS use async/await over `.then()` chains — async/await produces linear, readable code; .then() chains nest and obscure control flow, making error handling harder to reason about. 2. ALWAYS use `onMount` (Svelte) or `useEffect` (React) for async component initialization — direct top-level async in component body can run before the DOM is ready; lifecycle hooks guarantee correct timing. 3. NEVER use `forEach` with async callbacks — array.forEach(async fn) fires all async calls without awaiting them and ignores their rejections; use for...of for sequential or Promise.all(array.map(async fn)) for parallel. 4. ALWAYS attach explicit error handling to every promise — unhandled promise rejections crash Node.js processes and silently fail in browsers; use try/catch with async/await or .catch() with .then() chains. 5. NEVER mix async/await and `.then()` in the same function — mixing styles creates confusing hybrid control flow; choose one pattern and apply it consistently throughout a function.
Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
array.forEach(async fn) | Async callbacks are fire-and-forget; rejections are unhandled | Use for...of (sequential) or Promise.all(arr.map(...)) (parallel) |
| Unhandled promise rejections | Crashes Node.js; silently fails in browser | Always wrap in try/catch or add .catch() |
Mixing .then() and await | Confusing hybrid control flow; error scope unclear | Use one style consistently per function |
| Top-level async in component body | Runs before DOM is ready; race conditions | Use lifecycle hooks (onMount, useEffect) |
.then() chains 3+ levels deep | Callback pyramid; hard to debug | Convert to async/await for linear readability |
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.mdAfter completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
Invoke the async-operations skill and follow it exactly as presented to you
'use strict';
/**
* Post-execute hook for async-operations
* Auto-generated by enterprise-bundle-scaffolder
*
* Records metrics after skill execution.
*/
function postExecute(_context) {
// Record execution metrics
return { ok: true, skill: 'async-operations' };
}
module.exports = { postExecute };
'use strict';
/**
* Pre-execute hook for async-operations
* Auto-generated by enterprise-bundle-scaffolder
*
* Validates inputs before skill execution.
*/
function preExecute(context) {
// Validate skill invocation context
if (!context || typeof context !== 'object') {
return { allow: true, message: 'async-operations: no context to validate' };
}
return { allow: true };
}
module.exports = { preExecute };
async-operations Research Requirements
Generated: 2026-02-28
Skill Description
Specifies the preferred syntax for asynchronous operations using async/await and onMount for component initialization. This results in cleaner and more readable asynchronous code.
Research Areas
- Current best practices for async-operations
- Industry standards and tooling
- Integration patterns
Source References
- To be populated by skill-updater research phase
async-operations Rules
Purpose
Specifies the preferred syntax for asynchronous operations using async/await and onMount for component initialization. This results in cleaner and more readable asynchronous code.
Best Practices
- Prefer async/await over .then() chains for readability
- Always handle promise rejections explicitly
- Use onMount/useEffect for component initialization with async
Integration Points
See SKILL.md for complete documentation.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "async-operationsInput",
"description": "Input schema for Specifies the preferred syntax for asynchronous operations using async/await and onMount for component initialization. This results in cleaner and more readable asynchronous code.",
"type": "object",
"additionalProperties": true,
"properties": {
"target": {
"type": "string",
"description": "Target file or path for the skill to operate on"
},
"options": {
"type": "object",
"description": "Additional options for skill execution",
"additionalProperties": true
}
}
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "async-operationsOutput",
"type": "object",
"additionalProperties": true,
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
}
}
}
#!/usr/bin/env node
/**
* async-operations - Rule-based Skill
* Converted from: async-operations.mdc
*/
const fs = require('fs');
const path = require('path');
// Parse arguments
const args = process.argv.slice(2);
const options = {};
for (let i = 0; i < args.length; i++) {
if (args[i].startsWith('--')) {
const key = args[i].slice(2);
const value = args[i + 1] && !args[i + 1].startsWith('--') ? args[++i] : true;
options[key] = value;
}
}
if (options.help) {
console.log(`
async-operations - Code Guidelines Skill
Usage:
node main.cjs --check <file> Check a file against guidelines
node main.cjs --list List all guidelines
node main.cjs --help Show this help
Description:
Specifies the preferred syntax for asynchronous operations using async/await and onMount for component initialization. This results in cleaner and more readable asynchronous code.
`);
process.exit(0);
}
if (options.list) {
console.log('Guidelines for async-operations:');
console.log('See SKILL.md for full guidelines');
process.exit(0);
}
console.log('async-operations skill loaded. Use with Claude for code review.');
async-operations Implementation Template
Goal
- Define target outcome and acceptance criteria.
TDD
1. Red 2. Green 3. Refactor
Verification
- lint
- format
- targeted tests