Communitygithub.com

백그라운드 작업 큐 설계

백그라운드 작업 시스템 설계 시 BullMQ/Sidekiq/RQ/Temporal/SQS 중 선택, 큐 vs 워크플로우 결정, 동시성과 속도 제한 크기 조정, 데드 레터 큐 구축, 멱등성 핸들러 구현에 대한 모범 사례를 제공합니다.

백그라운드 작업 큐 설계란 무엇인가요?

이 스킬은 Node.js( BullMQ), Ruby( Sidekiq), Python(RQ/Celery/Dramatiq), Go( Asynq), 관리형 서비스(SQS), 지속적 실행(Temporal)을 포함한 다양한 플랫폼에서 백그라운드 작업 큐 시스템을 설계하고 운영하기 위한 종합적인 가이드입니다. 작업 손실, 중복 실행, 무한 재시도라는 세 가지 주요 실패 모드를 처음부터 설계하는 방법을 중점적으로 다룹니다. 핵심 원칙은 멱등성으로, 모든 핸들러가 최소 한 번 이상(at-least-once) 전달 의미 체계를 처리하도록 설계되어야 합니다. 이 스킬은 작업 ID 중복 제거와 데이터베이스 고유 제약 조건을 모두 사용하는 멱등성 패턴, 가시성 타임아웃 및 신뢰할 수 있는 가져오기 메커니즘(예: BullMQ의 잠금 기간, Sidekiq Pro의 super_fetch, SQS의 가시성 타임아웃), 영구 오류와 일시적 오류를 분류하고 데드 레터 큐(DLQ)를 효과적으로 관리하는 방법, 전체 지터를 사용한 지수 백오프, 큐 수준 속도 제한기, Redis 메모리 관리(noeviction 정책 필수), 정상 종료, 큐 vs 워크플로우(예: Temporal) 결정 트리와 같은 고급 주제를 다룹니다. 또한 Redis SET-NX만으로 멱등성을 구현하는 것, lockDuration이 핸들러 p99보다 짧은 것, Redis maxmemory-policy가 잘못 설정된 것, 재생 도구가 없는 DLQ 등 일반적인 안티 패턴과 그 해결책도 제공합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/curiositech/windags-skills/tree/HEAD/skills/background-job-queue-design

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

백그라운드 작업 큐 설계은(는) 무엇을 하나요?

백그라운드 작업 시스템은 처음부터 설계해야 하는 세 가지 실패 모드, 즉 작업 손실, 중복 실행, 무한 재시도가 있습니다. 잘못된 프리미티브를 선택하면 다음 해 내내 이 세 가지 문제를 해결하는 데 시간을 보내게 될 것입니다. BullMQ, Sidekiq, SQS, Temporal 문서에서 공통적으로 반복되는 업계 합의는 '최소 한 번(at-least-once)이 유일하게 정직한 전달 의미 체계' 라는 점입니다. 모든 핸들러를 멱등하게 설계하고 정확히 한 번(exactly-once)을 쫓는 것을 중단하세요. (Caduh — 큐 101)

문제 상황으로 바로 이동:

사용 시기

  • Node, Ruby, Python 또는 Go로 새 백그라운드 작업 시스템을 설계할 때.
  • setTimeout / cron / 자체 제작 큐에서 실제 브로커로 마이그레이션할 때.
  • 작업자 충돌로 작업이 손실될 때.
  • 프로덕션 재시도로 인해 중복 부작용이 발생할 때.
  • BullMQ (Node + Redis), Sidekiq (Ruby + Redis), RQ / Celery / Dramatiq (Python), Asynq (Go + Redis), SQS (관리형), 또는 Temporal (지속적 실행) 중에서 선택할 때.

핵심 기능

작업 유형에 맞는 프리미티브 선택

상황선택이유
Node에서 짧은 부작용 작업(이메일 전송, 이미지 리사이즈)BullMQRedis 네이티브, 성숙한 DLQ, 흐름 패턴, 일반적으로 노드당 ~~5k jobs/sec
Ruby에서 동일한 작업Sidekiq (안정성을 위해 Pro)동일한 형태; Pro super_fetch는 LMOVE를 통해 신뢰할 수 있는 가져오기 추가 (Sidekiq 위키)
외부 API 팬아웃, 수 시간~일 단위 지속 시간의 다단계 워크플로우Temporal지속적 실행; 이벤트 기록에서 재생 (Temporal 문서)
AWS 네이티브, 간단한 팬아웃, Redis를 실행하고 싶지 않음SQS + Lambda관리형 최소 한 번; 가시성 타임아웃 + DLQ 일급 지원 (AWS SQS DLQ)
교차 리전, 멀티 테넌트 격리Temporal 또는 SQS단일 Redis는 멀티 리전을 깔끔하게 처리하지 못함
DB + 이메일 + 결제 전반에 걸친 정확히 한 번 필요없음 — 최소 한 번 + 멱등 핸들러로 설계브로커 내부의 "정확히 한 번"은 시스템 간에 확장되지 않음 (Caduh)

숨겨진 기준: 복구 스토리가 얼마나 복잡한가? "영수증 보내기"에는 재시도가 있는 간단한 BullMQ 큐로 충분합니다. 웹훅을 기다리며 24시간 동안 일시 중지되는 12단계 구매 워크플로우는 12개의 연결된 큐 작업이 아니라 Temporal 워크플로우입니다.

멱등성

필수 속성입니다. 모든 인기 있는 큐 문서가 이것으로 시작합니다. BullMQ 멱등 작업 페이지에서: "작업이 첫 번째 시도에서 성공적으로 완료되든, 처음에 실패했다가 재시도될 때 성공하든 시스템의 최종 상태에는 차이가 없어야 합니다." (BullMQ 멱등 작업)

실용적인 패턴:

// 1. 큐가 아닌 비즈니스 이벤트에서 파생된 멱등성 키.
//    상류 이벤트 ID가 있으면 사용하십시오 (Stripe event.id, Shopify hook id).
const job = await queue.add(
  'send-receipt',
  { orderId, amount },
  {
    jobId: `send-receipt:${orderId}`,   // BullMQ는 큐 내에서 jobId로 중복 제거.
    attempts: 5,
    backoff: { type: 'exponential', delay: 1000 },
    removeOnComplete: { age: 3600, count: 1000 },
    removeOnFail:     { age: 86400 },
  }
);

// 2. 핸들러 내부에서도 부작용 발생 지점에서 중복 제거.
async function processSendReceipt(job) {
  const { orderId, amount } = job.data;
  // 이미 보냈으면 아무것도 하지 않음.
  const sent = await db.queryOne(
    'INSERT INTO email_sends (idempotency_key, order_id) VALUES ($1, $2) ON CONFLICT DO NOTHING RETURNING id',
    [`send-receipt:${orderId}`, orderId]
  );
  if (!sent) return { skipped: 'already-sent' };
  await emailProvider.send({ to: ..., subject: ..., body: render(amount) });
}

jobId는 중복 항목이 여전히 큐에 있는 동안 추가를 중복 제거합니다. DB 고유 제약 조건은 작업자 충돌, 재시도 및 재생 전반에 걸쳐 중복을 제거합니다. 둘 다 필요합니다; jobId만으로는 충분하지 않습니다. BullMQ는 완료된 작업을 제거하고 중복 제거 창이 사라지기 때문입니다.

신뢰할 수 있는 가져오기 및 가시성 타임아웃

작업자가 작업을 가져오고 충돌하면 어떻게 됩니까?

시스템기본 동작복구
BullMQ작업에 lockDuration (기본 30초)이 있습니다. 중단 작업 검사기가 만료 후 다시 큐에 넣습니다 (BullMQ 프로덕션)작업자는 lockDuration 내에 잠금을 연장하거나 완료해야 합니다. 그렇지 않으면 두 번 실행됩니다
Sidekiq OSSPop은 비원자적입니다. 작업자가 pop과 process 사이에 죽으면 작업이 손실됩니다Sidekiq Pro super_fetch로 업그레이드 (Redis 6.2+ LMOVE를 개인 작업 큐로)
Sidekiq Pro super_fetch프로세스별 작업 목록으로 LMOVE. 하트비트는 60초에 만료됩니다. 고아 검사가 정리하고 다시 큐에 넣습니다 (Sidekiq 위키)내장됨
SQS가시성 타임아웃 (기본 30초, 최대 12시간). 삭제되지 않으면 타임아웃 후 메시지가 다시 나타납니다타임아웃을 핸들러 p99 지연 시간보다 길게 설정. 긴 작업의 경우 ChangeMessageVisibility로 연장
Temporal활동에는 하트비트 + 재시도 정책이 있습니다. 작업자 사망 후 워크플로우 기록이 유지됩니다기록에서 재생; 이에 대해 생각할 필요가 없습니다

함정: lockDuration / 가시성 타임아웃이 핸들러 p99보다 짧으면 → 작업이 두 번 실행됩니다. 허용 가능한 복구 시간보다 길면 → 충돌한 작업이 너무 오래 기다립니다. 먼저 p99를 측정하고, 타임아웃을 약 3배로 설정하고, 진정으로 긴 작업의 경우 핸들러가 하트비트를 보내거나 잠금을 연장하십시오.

오류 분류 및 DLQ

모든 오류가 영원히 재시도되어야 하는 것은 아닙니다. SQS 문서에서: "최대 수신 횟수...와 임계값을 초과하면 DLQ로 메시지를 보내는 재전송 정책을 설정하십시오." (AWS SQS DLQ)

// 던지기 전에 분류하십시오. 영구 오류는 재시도하면 안 됩니다.
class PermanentError extends Error { constructor(m: string) { super(m); this.name = 'PermanentError'; } }
class TransientError extends Error { constructor(m: string) { super(m); this.name = 'TransientError'; } }

async function process(job) {
  try {
    const user = await db.user(job.data.userId);
    if (!user) throw new PermanentError('user-not-found');   // → 첫 시도에 DLQ
    if (user.suspended) throw new PermanentError('user-suspended');
    await externalApi.call(user);
  } catch (e) {
    if (e instanceof PermanentError) {
      // 즉시 DLQ로 이동 — 재시도는 도움이 되지 않음.
      job.discard();    // BullMQ: 재시도 방지
      throw e;
    }
    throw e;            // 네트워크/타임아웃 → 재시도 정책에 따라 재시도
  }
}

그러면 DLQ에 필요한 것은:

  • 증가하는 개수에 대한 알림 (0이 아닌 것만이 아님 — "DLQ에 3개 영원히"는 괜찮습니다. "DLQ가 100/분 증가"는 화재입니다).
  • 사람이 상류 버그를 수정하고, 데드 레터링된 작업을 재생하고, DLQ를 비울 수 있도록 재생 도구 (CLI 또는 관리 UI).
  • 대시보드 (grafana-dashboard-builder 참조).

백오프 및 지터

지수 백오프만으로는 충분하지 않습니다. 12:00:00에 다운스트림 서비스가 일시적으로 중단되어 1000개의 작업이 모두 실패하면, 일반 지수 백오프는 1000개 모두 정확히 12:00:01, 12:00:03, 12:00:07에 재시도합니다 — 다운스트림 서비스를 계속 다운 상태로 유지할 수 있는 무리한 요청 폭주(thundering herd)입니다. 전체 지터(full jitter) 를 추가하십시오:

// AWS 스타일 "전체 지터": delay = random(0, exp_backoff)
const baseDelay = Math.min(2 ** attempt * 1000, 30_000);
const delay = Math.random() * baseDelay;

BullMQ 권장 기준의 경우, going-to-production 문서는 retryStrategy와 함께 1초에서 20초 사이의 재시도 간격을 제안합니다. (BullMQ 프로덕션)

동시성 및 제한기

작업자별 동시성은 단일 프로세스에서 N개의 작업을 병렬로 실행합니다. 여러 작업자는 이를 곱합니다. 큐 수준 제한기가 없으면 다운스트림에 대한 총 호출을 제한할 수 없습니다:

// BullMQ — 이 큐의 모든 작업자에 대한 전역 속도 제한.
const queue = new Queue('outbound-emails', {
  connection,
  limiter: { max: 100, duration: 1000 }, // 전체 fleet에서 초당 100개의 이메일
});

올바른 형태: 다수의 동시 작업자 + 다운스트림 계약 제한을 위한 큐 제한기. Sidekiq에도 동등한 속도 제한기가 있습니다. SQS는 Lambda 동시성 또는 메시지별 속도를 사용합니다.

메모리 관리

BullMQ 프로덕션에서 가장 강조되는 단일 문제점: Redis 인스턴스의 maxmemory-policy noeviction. 다른 것 (allkeys-lru, volatile-lru)은 부하가 걸리면 큐에 대기 중인 작업을 자동으로 제거(evict)합니다. (BullMQ 프로덕션)

또한:

  • removeOnComplete를 공격적으로 설정 (예: { age: 3600, count: 1000 }).
  • DLQ 패턴으로 이동한 후 removeOnFail을 더욱 공격적으로 설정.
  • Redis AOF 지속성 활성화 — appendfsync everysec은 BullMQ에 대해 문서화된 최적 지점입니다. (BullMQ 프로덕션)
  • 작업자 maxRetriesPerRequest: null로 설정하여 일시적인 연결 끊김 동안 ioredis가 예외를 throw하는 것을 방지합니다. (BullMQ 프로덕션)
  • 큐 측: enableOfflineQueue: false로 설정하여 프로듀서가 버퍼링 대신 빠르게 실패하도록 합니다.

정상 종료

process.on('SIGTERM', async () => {
  await worker.close();   // 수락 중지; 진행 중인 작업 완료.
  await connection.quit();
  process.exit(0);
});
process.on('SIGINT', async () => { /* 동일 */ });

BullMQ 프로덕션 가이드는 프로세스를 중지하기 전에 작업자를 닫아야 한다고 명시적으로 언급합니다. 기본 중단 타임아웃은 약 30초입니다. (BullMQ 프로덕션)

큐 vs 워크플로우 결정

Temporal 문서의 유용한 프레임: "메시지 큐가 서비스 간에 데이터를 이동하는 반면, Temporal은 전체 프로세스를 조정합니다... 워크플로우의 위치, 완료된 항목, 보류 중인 항목, 재시도해야 하는 항목을 알고 있습니다." (Temporal 블로그)

flowchart TD
  A[백그라운드 작업] --> B{단일 부작용 또는 파이프라인?}
  B -->|단일| C[BullMQ / Sidekiq / SQS]
  B -->|다단계| D{단계가 초 또는 시간 이상 지속?}
  D -->|초| E[BullMQ flows / Sidekiq batches]
  D -->|시간+ 또는 사람 개입| F[Temporal / DBOS / Restate]
  C --> G{교차 리전 또는 멀티 테넌트 격리 필요?}
  G -->|예| H[SQS 또는 Temporal — Redis 단일 클러스터는 불가]
  G -->|아니오| I[Redis 클러스터 + AOF + noeviction으로 실행]

안티 패턴

Redis SET-NX만으로 멱등성 구현

증상: Redis 중단 또는 재시작 중에 동일한 작업이 두 번 실행되어 중복 부작용(결제, 이메일, 티켓)이 발생합니다. 진단: Redis는 캐시입니다. 제거, 재시작 또는 파티셔닝될 수 있습니다. Redis에만 존재하는 SET-NX 중복 제거는 최선의 노력(best-effort)입니다. 해결책: 부작용 레코드(예: email_sends.idempotency_key)에 DB 고유 제약 조건이 있는 멱등성 키. 부작용을 생성하는 DB 트랜잭션이 중복 제거 프리미티브입니다.

lockDuration이 핸들러 p99보다 짧음

증상: 중단 작업 로그 항목; 동일한 작업이 두 작업자에 의해 처리됨. 고객 불만. 진단: 기본 lockDuration은 30초입니다. 핸들러가 때때로 45초가 걸립니다. 두 번째 작업자가 이를 가져옵니다. 해결책: p99를 측정하고 lockDuration을 ~3배 p99로 설정하고 긴 핸들러 내에서 job.extendLock()을 호출하십시오. 또는 작업을 분할하십시오.

일반 지수 백오프 (지터 없음)

증상: 다운스트림의 일시적인 중단이 다운스트림 장애가 됩니다. 10k 작업이 복구 서비스를 동시에 강타합니다. 진단: 지터가 없으면 재시도가 상호 연관됩니다. 해결책: 전체 지터 백오프. 최대 지연을 제한하여 DLQ 실패 시간을 제한하십시오.

Redis에서 maxmemory-policy allkeys-lru

증상: 부하가 걸리면 큐가 신비롭게 작업을 잃습니다. 오류가 없습니다. (BullMQ 프로덕션) 진단: Redis가 공간을 확보하기 위해 작업 키를 제거했습니다. 해결책: CONFIG SET maxmemory-policy noeviction을 실행하고 시작 시 이를 확인하십시오. 그렇지 않으면 작업자가 시작을 거부해야 합니다.

시스템 전반에 걸친 정확히 한 번(exactly-once)인 척하기

증상: 고객에게 두 번 청구됨; 동일한 이메일을 두 번 보냄. 엔지니어는 "브로커가 정확히 한 번이다"라고 확신합니다. 진단: FIFO/정확히 한 번 브로커라도 그 보장을 DB + 이메일 공급업체 + Stripe + 원장으로 확장하지 않습니다. 해결책: 큐를 최소 한 번(at-least-once)으로 취급하십시오. 모든 부작용 경계에서 멱등성.

재생 도구가 없는 DLQ

증상: "DLQ에 3,200개의 작업이 있습니다. 그 안에 무엇이 있는지 모릅니다." DLQ는 모니터링되지 않는 묘지가 됩니다. 진단: DLQ를 구축했지만 운영자 도구를 구축하지 않았습니다. 해결책: ID별 재생, 시간 범위별 재생, 확인 후 비움. CLI 또는 관리 UI. 테스트됨.

이벤트 루프에서 오래 차단되는 작업

증상: BullMQ 작업자 프로세스 중단; 하트비트 중지; 잠금 만료; 작업 재실행. 진단: 큐 하트비트와 동일한 프로세스에서 CPU 바운드 작업; 이벤트 루프가 > lockDuration 동안 차단됨. 해결책: CPU 바운드 작업을 위해 자식 프로세스 또는 작업자 스레드를 생성하십시오. 또는 샌드박스 처리된 프로세서를 실행하십시오 (BullMQ는 작업별 프로세스 샌드박싱을 지원합니다).

품질 관문

  • 테스트: 혼란 테스트 — 작업 중간에 작업자를 종료하고; 작업이 재실행되고 부작용이 중복되지 않는지 확인.
  • 테스트: 재시도 폭풍 테스트 — 60초 동안 다운스트림 실패; 백오프 + 지터가 재시도를 분산시키는지 확인 (메트릭에 무리한 요청 폭주 없음).
  • 모든 핸들러는 멱등하며 비즈니스 이벤트에서 파생된 안정적인 멱등성 키를 사용함.
  • DB 수준 고유 제약 조건이 in-Redis 중복 제거 (jobId, SET-NX)를 백업함.
  • lockDuration / 가시성 타임아웃 ≥ 3× 측정된 p99 핸들러 지연 시간, AND 긴 핸들러는 잠금을 연장함.
  • 영구 오류 (PermanentError 클래스 또는 이에 상응하는 것)는 재시도를 우회하고 DLQ로 바로 이동.
  • DLQ 알림: 개수 > 0이 아니라 성장률 > 분당 N일 때 페이지.
  • DLQ 재생 도구가 존재하고 테스트됨 (단일 + 범위).
  • Redis: maxmemory-policy=noeviction, AOF 활성화 (appendfsync everysec), 작업자 시작 시 확인. (BullMQ 프로덕션)
  • removeOnComplete 및 removeOnFail 구성됨. 작업 개수 메트릭이 시간에 따라 추세됨.

참조

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

curiositech/windags-skills

Expert in 2000s-era music visualization (Milkdrop, AVS, Geiss) and modern WebGL implementations. Specializes in Butterchurn integration, Web Audio API AnalyserNode FFT data, GLSL shaders for audio-reactive visuals, and psychedelic generative art. Activate on "Milkdrop", "music visualization", "WebGL visualizer", "Butterchurn", "audio reactive", "FFT visualization", "spectrum analyzer". NOT for simple bar charts/waveforms (use basic canvas), video editing, or non-audio visuals.

curiositech/windags-skills

Expert legal research agent for finding and scraping expungement data state by state. Knows authoritative sources, URL patterns, Firecrawl configuration, and 2026 legal landscape.

curiositech/windags-skills

Expert in 3D computer vision labeling tools, workflows, and AI-assisted annotation for LiDAR, point clouds, and sensor fusion. Covers SAM4D/Point-SAM, human-in-the-loop architectures, and vertical-specific training strategies. Activate on '3D labeling', 'point cloud annotation', 'LiDAR labeling', 'SAM 3D', 'SAM4D', 'sensor fusion annotation', '3D bounding box', 'semantic segmentation point cloud'. NOT for 2D image labeling (use clip-aware-embeddings), general ML training (use ml-engineer), video annotation without 3D (use computer-vision-pipeline), or VLM prompt engineering (use prompt-engineer).

curiositech/windags-skills

Implement WCAG 2.2 AA/AAA compliance with automated testing, keyboard navigation, screen reader support, and focus management. Activate on: accessibility audit, WCAG compliance, keyboard navigation, screen reader, aria attributes, axe-core, focus trap. NOT for: design-level accessibility review (use design-accessibility-auditor), color contrast only (use css-in-js-architect).

curiositech/windags-skills

Time-blind friendly planning, executive function support, and daily structure for ADHD brains. Specializes in realistic time estimation, dopamine-aware task design, and building systems that actually work for neurodivergent minds.

curiositech/windags-skills

Designs digital experiences for ADHD brains using neuroscience research and UX principles. Expert in reducing cognitive load, time blindness solutions, dopamine-driven engagement, and compassionate design patterns. Activate on 'ADHD design', 'cognitive load', 'accessibility', 'neurodivergent UX', 'time blindness', 'dopamine-driven', 'executive function'. NOT for general accessibility (WCAG only), neurotypical UX design, or simple UI styling without ADHD context.

curiositech/windags-skills

>- Apply crisis decision-making research to agent routing, uncertainty triage, and coordination failure analysis in time-pressured systems. Use when diagnosing handoff failures, analytical paralysis, or expert judgment under incomplete information. NOT for routine coding, simple CRUD design, or static single-agent tasks with complete information.

curiositech/windags-skills

Extend and modify the admin dashboard, developer portal, and operations console. Use when adding new admin tabs, metrics, monitoring features, or internal tools. Activates for dashboard development, analytics, user management, and internal tooling.

curiositech/windags-skills

Conversation patterns and interaction protocols for multi-agent systems. Covers request/response, pub/sub, blackboard, delegation chains, debate, critique, consensus, fan-out/fan-in, supervisor-worker, and peer negotiation. Deep analysis of AutoGen conversation patterns, CrewAI delegation, LangGraph state passing, and FIPA-ACL performatives. Teaches how to design what agents say to each other and in what order. Activate on: "agent conversation", "agent protocol", "multi-agent debate", "agent delegation", "supervisor worker pattern", "agent voting", "consensus protocol", "fan-out fan-in", "agent negotiation", "blackboard pattern", "agent dialogue", "conversation topology", "agent handoff". NOT for: wire format or serialization (use agent-interchange-formats), orchestration infrastructure (use agentic-infrastructure-2026), single agent behavior (use agentic-patterns).

curiositech/windags-skills

Meta-agent for creating new custom agents, skills, and MCP integrations. Expert in agent design, MCP development, skill architecture, and rapid prototyping. Activate on 'create agent', 'new skill', 'MCP server', 'custom tool', 'agent design'. NOT for using existing agents (invoke them directly), general coding (use language-specific skills), or infrastructure setup (use deployment-engineer).

curiositech/windags-skills

AI-powered calendar management and agent-based scheduling coordination. Covers calendar APIs (Google Calendar, CalDAV/iCal), AI scheduling assistants (Reclaim, Clockwise, Motion, Cal.com), building custom calendar agents with MCP, multi-calendar merging, timezone management, focus block protection, meeting fatigue detection, and agent-to-agent meeting negotiation protocols. Activate on: "calendar agent", "AI scheduling", "calendar coordination", "meeting scheduling", "calendar API", "focus time protection", "calendar optimization", "Google Calendar MCP", "Reclaim", "Clockwise", "Motion", "Cal.com", "smart scheduling", "calendar-aware agent", "timezone scheduling", "agent negotiation meetings". NOT for: manual calendar UI component design (use form-validation-architect), project management scheduling or Gantt charts (use project-management-guru-adhd), general time-tracking or pomodoro apps (use adhd-daily-planner for time-awareness), building the agent itself from scratch (use agent-creator).

curiositech/windags-skills

Build and adopt production AI agent infrastructure in 2026. Covers framework selection (LangGraph, CrewAI, AutoGen, MCP), orchestration patterns, evaluation, observability, memory systems, and tool use. Also covers the SOCIAL dimension: how to sell agent infrastructure internally, change management, measuring ROI, building trust in autonomous systems, and scaling adoption across teams. Activate on: "agent infrastructure", "agent framework comparison", "which agent framework", "sell AI tools internally", "agent adoption", "agent observability", "agent evaluation", "MCP architecture", "agentic mesh", "enterprise AI agents", "AI change management", "agent ROI". NOT for: building specific agents (use ai-engineer), designing agent behavior patterns (use agentic-patterns), prompt tuning (use prompt-engineer).

curiositech/windags-skills

Fundamental patterns for effective agentic behavior. Teaches decomposition, tool orchestration, error recovery, context management, quality self-assessment, and knowing when to stop. Model-agnostic principles that make any agent more effective regardless of domain. Activate on: "how should I structure this agent", "agentic workflow", "agent patterns", "multi-step task", "tool orchestration", "/agentic-patterns", "decompose this", "agent best practices", "chain of actions", "when should the agent stop", "agent loop design". NOT for: creating agent infrastructure (use agent-creator), building DAGs (use windags-architect), specific tool implementation.

curiositech/windags-skills

Automated discovery and matching of agent skills for dynamic task routing and capability assessment

curiositech/windags-skills

Cryptographic security for agentic systems — zero-trust agent networking, signed message envelopes (JWS/JWE), capability-based security (ocaps), Merkle tree audit trails, WASM sandboxing, and formal verification. Covers CLI dev tool security, mTLS between agents, permission boundaries (least privilege for AI agents), and supply chain security for skills/plugins. Activate on: "agent security", "zero trust agents", "secure agent communication", "capability-based security", "ocap", "signed messages between agents", "agent audit trail", "sandbox agent execution", "agent permissions", "mTLS agents", "cryptographic verification", "agent supply chain", "OWASP agentic", "prove agent did X", "tamper-proof agent logs". NOT for: application-level SAST scanning (use security-auditor), network firewall rules (use infrastructure), SOC2/HIPAA compliance (organizational), or prompt injection defense (use prompt-engineer).

curiositech/windags-skills

Data structures and serialization formats for agent-to-agent communication. Covers message envelopes, structured output schemas, capability declarations, task handoff payloads, error/retry signaling, and context windows as data structures. Deep comparison of A2A protocol, MCP, OpenAI function calling, and LangChain message types. Teaches when to use rigid schemas vs free-form with validation, typed vs untyped, streaming vs batch. Activate on: "agent message format", "agent communication schema", "agent-to-agent protocol", "A2A protocol", "MCP message format", "structured output for agents", "agent interop", "interchange format", "agent serialization", "task handoff format", "capability declaration". NOT for: what agents say to each other (use agent-conversation-protocols), orchestration topology (use multi-agent-coordination), building agent infrastructure (use agentic-infrastructure-2026).

curiositech/windags-skills

Logic-based agent programming language implementing BDI architecture for practical autonomous agent development

curiositech/windags-skills

>- Design AgentSpeak(L)-style BDI agents with context-guarded plans, selection functions, and intention stacks. Use for interruptible autonomy, agent policy, and multi-agent orchestration in dynamic environments. NOT for simple rule engines, static planners, or centralized workflows.

curiositech/windags-skills

Foundational concurrent computation model where actors communicate exclusively through asynchronous message passing

curiositech/windags-skills

license: Apache-2.0 NOT for unrelated tasks outside this domain.

관련 스킬