본문으로 건너뛰기
cccskills
무료GitHub에 공개

error-definitions

Use before proposing error definitions (propose_error_definitions) - how to read an error group, pick its category and action, write a match that catches one kind of error and nothing else, and when a definition should not be proposed at all

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.0 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Error definitions

An error definition says what one kind of runtime error means and what happens when it recurs. A person accepts or dismisses each one you propose, so every proposal has to stand on its own: a name a person recognises, a match they can read, a category and action they would have chosen, and a one-sentence rationale.

Category: what it is

CategoryIt isUsual action
bugthis code does the wrong thing (a nil dereference, an unhandled case, a wrong query)task — one developer task per new group; incident if it breaks a core flow
expecteda designed outcome logged at error level (a cancelled checkout, a webhook for an unknown event, a cache miss logged loudly)ignore, or none to keep it visible but labelled
user_errorinput the code rejects correctly (validation, not found, unauthorised, rate limited)ignore unless a sudden rise would mean an attack or a broken client — then alert with a threshold
dependencya downstream service or API failing (timeouts, 5xx from a provider, a broker disconnect)alert with a threshold: one timeout is noise, fifty in ten minutes is an outage
infrastructurethe platform itself (out of memory, disk full, DNS, the database refusing connections)incident

Read the code before you choose: the line that raises it, and what its callers do with it. A 404 the API returns on purpose is user_error; a 404 the service gets back from its own storage is a bug or a dependency.

Match: one kind of error, nothing else

Every field you set must hold.

  • fingerprint — exactly one group. Use it when the group is one specific failure and its message would match too much.
  • message_regex — a family. Anchor on the words that never change (^payment provider timeout), escape what is literal (\(, \.), and never include an id, a timestamp, an amount or a host that varies between occurrences. Test it mentally against two different groups of the family.
  • exception_type — the class or error type as printed before the first :; a bare name (TimeoutError) matches its qualified form.
  • endpoint (POST /v1/charges, /v1/orders/*) and status (504) — when the message prints them, to tell the same exception on two routes apart.
  • attributes — exact key=value pairs the message prints (tenant=acme), or source / provider.

A match that also catches unrelated groups is worse than none: an ignore hides real failures and an alert pages for the wrong thing. When in doubt, narrow it.

Thresholds

For alert and incident, set alert_threshold from what the group does today: its count over a window in list_error_groups. A dependency that times out three times an hour normally wants an alert at, say, twenty in ten minutes — not at one. Leave it out and the defaults apply (alert: 10 in an hour; incident: any occurrence).

Severity

critical only when a core flow is down for everyone; high when users notice; medium for degraded but working; low for noise you still want counted.

Evidence and rationale

evidence: the group fingerprints it matches and the file:line that raises it. rationale: one sentence a person reads in the Errors page before accepting — "Raised in payments/client.go:88 when the provider exceeds 5 s; retried once, so a burst means the provider is down."

Do not propose

  • A group you could not trace to code — say in your reply that it is unexplained instead.
  • A definition for a group that already carries one (definition is set in list_error_groups).
  • Anything whose only purpose is to make the inbox look empty. ignore is for errors that are genuinely expected, never for defects nobody has fixed yet.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when writing acceptance criteria for a task - express each as an observable Given/When/Then that QA can execute, including negative cases

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

Use on every UI change - semantic HTML, labels for controls, keyboard-navigable dialogs/menus, visible focus, and never color as the only signal

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

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.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

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

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

makifbaysal/tasktrooper1172026년 10월 18일 업데이트

makifbaysal의 스킬 모두 보기

이 스킬의 문제 신고