PluginBench
Skill
Pass
Audit score 90

workflow-automation

sickn33/agentic-awesome-skills

Durable execution infrastructure for reliable AI agent workflows with automatic recovery from failures.

What is workflow-automation?

Workflow automation provides the infrastructure to make AI agents production-reliable through durable execution—workflows resume exactly where they left off after network failures or crashes. This skill covers platforms (n8n, Temporal, Inngest) and patterns (sequential, parallel, orchestrator-worker) that turn brittle scripts into robust automation.

  • Implements durable execution so workflows survive network hiccups and crashes
  • Supports sequential, parallel, and orchestrator-worker execution patterns
  • Provides step-level retry logic and error handling
  • Enables event-driven and scheduled task automation
  • Abstracts platform differences (n8n for accessibility, Temporal for correctness, Inngest for developer experience)

How to install workflow-automation

npx skills add https://github.com/sickn33/agentic-awesome-skills --skill workflow-automation
Prerequisites
  • TypeScript or compatible runtime environment
  • Familiarity with async/await patterns
  • Access to one of: n8n, Temporal, or Inngest platform
Claude Code
Cursor
Windsurf
Cline

How to use workflow-automation

  1. 1.Choose a platform based on your tradeoffs: n8n (accessibility), Temporal (correctness), or Inngest (developer experience)
  2. 2.Define your workflow as a function with named steps using step.run() or equivalent
  3. 3.Implement each step as an activity or function with retry logic
  4. 4.Deploy the workflow to your chosen platform
  5. 5.Trigger via events, schedules, or direct invocation

Use cases

Good for
  • Multi-step payment flows that must not lose money on interruption
  • Parallel document analysis with aggregated results
  • Complex task orchestration dispatching to specialized worker workflows
  • Background job processing with guaranteed completion
  • Event-driven automation triggered by system events
Who it's for
  • Backend engineers building production automation systems
  • AI agent developers requiring reliable multi-step workflows
  • Teams needing event-driven or scheduled task infrastructure
  • Organizations handling critical workflows (payments, compliance, fulfillment)

workflow-automation FAQ

What happens if a workflow crashes mid-execution?

With durable execution, the workflow resumes exactly where it left off—completed steps are not re-executed, and the system retries from the failed step.

How do I choose between n8n, Temporal, and Inngest?

n8n optimizes for accessibility and UI-driven workflows; Temporal for strict correctness and complex orchestration; Inngest for developer experience and TypeScript-first development.

Can I run steps in parallel?

Yes. All three platforms support Promise.all() or equivalent to execute multiple steps concurrently and aggregate results.

What retry behavior is built in?

Each platform provides configurable retry policies (maximum attempts, backoff coefficients, timeouts) at the step level.

When should I use this instead of a simple script?

Use workflow automation whenever a task spans multiple steps, involves external calls, or must survive failures—especially for payment flows, data pipelines, or multi-service orchestration.

Full instructions (SKILL.md)

Source of truth, from sickn33/agentic-awesome-skills.


name: workflow-automation description: Workflow automation is the infrastructure that makes AI agents reliable. Without durable execution, a network hiccup during a 10-step payment flow means lost money and angry customers. With it, workflows resume exactly where they left off. risk: critical source: vibeship-spawner-skills (Apache 2.0) date_added: 2026-02-27

Workflow Automation

Workflow automation is the infrastructure that makes AI agents reliable. Without durable execution, a network hiccup during a 10-step payment flow means lost money and angry customers. With it, workflows resume exactly where they left off.

This skill covers the platforms (n8n, Temporal, Inngest) and patterns (sequential, parallel, orchestrator-worker) that turn brittle scripts into production-grade automation.

Key insight: The platforms make different tradeoffs. n8n optimizes for accessibility, Temporal for correctness, Inngest for developer experience. Pick based on your actual needs, not hype.

Detailed Guide

Read the detailed guide before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.

Inngest Example (TypeScript)

""" import { inngest } from "./client";

export const processOrder = inngest.createFunction( { id: "process-order" }, { event: "order/created" }, async ({ event, step }) => { // Step 1: Validate order const validated = await step.run("validate-order", async () => { return validateOrder(event.data.order); });

// Step 2: Process payment (durable - survives crashes)
const payment = await step.run("process-payment", async () => {
  return chargeCard(validated.paymentMethod, validated.total);
});

// Step 3: Create shipment
const shipment = await step.run("create-shipment", async () => {
  return createShipment(validated.items, validated.address);
});

// Step 4: Send confirmation
await step.run("send-confirmation", async () => {
  return sendEmail(validated.email, { payment, shipment });
});

return { success: true, orderId: event.data.orderId };

} ); """

Temporal Example (TypeScript)

""" import { proxyActivities } from '@temporalio/workflow'; import type * as activities from './activities';

const { validateOrder, chargeCard, createShipment, sendEmail } = proxyActivities<typeof activities>({ startToCloseTimeout: '30 seconds', retry: { maximumAttempts: 3, backoffCoefficient: 2, } });

export async function processOrderWorkflow(order: Order): Promise<void> { const validated = await validateOrder(order); const payment = await chargeCard(validated.paymentMethod, validated.total); const shipment = await createShipment(validated.items, validated.address); await sendEmail(validated.email, { payment, shipment }); } """

Inngest Example

""" export const analyzeDocument = inngest.createFunction( { id: "analyze-document" }, { event: "document/uploaded" }, async ({ event, step }) => { // Run analyses in parallel const [security, performance, compliance] = await Promise.all([ step.run("security-analysis", () => analyzeForSecurityIssues(event.data.document) ), step.run("performance-analysis", () => analyzeForPerformance(event.data.document) ), step.run("compliance-analysis", () => analyzeForCompliance(event.data.document) ), ]);

// Aggregate results
const report = await step.run("generate-report", () =>
  generateReport({ security, performance, compliance })
);

return report;

} ); """

Temporal Example

""" export async function orchestratorWorkflow(task: ComplexTask) { // Orchestrator decides what work needs to be done const plan = await analyzeTask(task);

// Dispatch to specialized worker workflows const results = await Promise.all( plan.subtasks.map(subtask => { switch (subtask.type) { case 'create': return executeChild(createWorkerWorkflow, { args: [subtask] }); case 'modify': return executeChild(modifyWorkerWorkflow, { args: [subtask] }); case 'delete': return executeChild(deleteWorkerWorkflow, { args: [subtask] }); } }) );

// Aggregate results return aggregateResults(results); } """

When to Use

  • User mentions or implies: workflow
  • User mentions or implies: automation
  • User mentions or implies: n8n
  • User mentions or implies: temporal
  • User mentions or implies: inngest
  • User mentions or implies: step function
  • User mentions or implies: background job
  • User mentions or implies: durable execution
  • User mentions or implies: event-driven
  • User mentions or implies: scheduled task
  • User mentions or implies: job queue
  • User mentions or implies: cron
  • User mentions or implies: trigger

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.