Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when code calls another service, runs in the background, consumes a queue or retries anything — timeouts, safe retries, idempotent handlers, outbox, graceful shutdown
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Everything outside your process can be slow, down, or duplicate its own delivery. The recurring defects: an HTTP client with no timeout (Go's default client has none), a retry on a non-idempotent call, a goroutine nobody waits for, and a consumer that isn't safe to redeliver to.
Core principle: every call out has a timeout, every retry is on an idempotent operation, and every background task is tracked, not fired and forgotten.
*http.Client{Timeout: ...} per downstream — the zero-value http.DefaultClient has no timeout and will hang a goroutine forever on a stuck peer.http.NewRequestWithContext(ctx, ...) so a canceled request actually stops; defer resp.Body.Close(); check the status code before decoding; cap how much of the body you read (io.LimitReader) even on success.RestClient/the MicroProfile REST Client, and use the framework's fault-tolerance annotations (@Retry/@Timeout on Quarkus, Resilience4j on Spring) only where the repo already has the dependency — don't add a new resilience library for one call site.context.WithoutCancel(ctx) (Go ≥1.21, keeps request-scoped values like the logger/trace id without inheriting cancellation) and is tracked so the process can wait for it on shutdown — sync.WaitGroup or wg.Go (Go ≥1.25).signal.NotifyContext(ctx, os.Interrupt, syscall.SIGTERM), then srv.Shutdown(ctx) (app.ShutdownWithContext on Fiber) so in-flight requests finish instead of being cut off mid-response.Mirrors what QA's worker-job-testing will probe — build it in from the start:
failed status row) — never retried forever in a tight loop that starves the rest of the queue.httptest.Server that sleeps past the client timeout, or returns 503) → asserts the caller's handling (retry, circuit, or clean failure) rather than hanging or panicking.http.Get/http.DefaultClient directly instead of a client with a configured timeout.go doSomething() with no error handling and no shutdown tracking.acks before the side effect is durably committed (loses the message on crash) or never acks a poison message (hot loop).http.Client{} with no Timeout field set anywhere near the call site.go func() { ... }() inside a handler with no recover and no WaitGroup.아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the diff adds or changes an endpoint, resolver, RPC, job or query that takes an object id, a role check, a request binding or a tenant filter - BOLA/IDOR, function-level authorization, mass assignment and tenant scoping
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when a task changes any screen, form, dialog, menu or control - Lighthouse/axe scan of the changed screens, a keyboard walk, and the thresholds that fail a task
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
How to work a task returned with review, QA or UAT findings. Use when a task is in need_revision or PR review comments are in your context.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when the repository keeps its alerting in code, or a person asks for alerts outside TaskTrooper - PrometheusRule YAML, a Cloud Monitoring alert policy in Terraform, a Datadog monitor, each routed to TaskTrooper's alert ingest URL so it opens an incident here
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.