designing-backend-error-messages — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited designing-backend-error-messages (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Author backend error-message contracts with a REST-first workflow. Switch transport guidance only when the task explicitly targets gRPC, GraphQL, or async/event systems.
application/problem+json.type, title, status, code, detail, trace_iderrors[] (validation), is_transient, retry_after_ms, help_url, domain metadata.validation.email.invalid_format).title stable per error type.detail occurrence-specific and actionable.trace_id.errors[].pointer.is_transient; include Retry-After / equivalent hints when applicable.trace_id is propagated, logged, and returned.errors.yaml entries, OpenAPI snippets, transport-specific examples, runbook stubs, review findings.is_transient, with Retry-After when known.trace_id in every error response.## Error contract
- Shape: [Problem Details / gRPC Status / GraphQL errors+extensions / async envelope]
- Required fields: [...]
- Retry fields: [...]
- Validation fields: [...]
## Error catalog additions
- [code] → [status] → [transient/permanent] → [trigger] → [remediation]
## Examples
- [At least one concrete response body per major failure mode]
## Notes
- Observability: [trace/log/metric linkage]
- Security: [leak-prevention checks passed]Example 1 — Author REST errors for a new endpoint
POST /v1/charges with validation failures, rate limits, and upstream payment outages."type, title, status, code, detail, trace_id)422 validation.failed, 429 rate_limit.per_user_exceeded, 503 billing.processor_unavailable)errors.yaml entries and OpenAPI response referencesExample 2 — Review and fix an existing response
{ \"status\":500, \"message\":\"NullPointerException at billing.go:142\" } and propose a safe replacement."code, and trace_idExample 3 — Non-REST transport request
CreateInvoice including invalid argument, concurrency abort, and temporary upstream outage."INVALID_ARGUMENT, ABORTED, UNAVAILABLE)ErrorInfo, BadRequest, RetryInfo)ErrorInfo, BadRequest, RetryInfo) when relevant.errors[].extensions and maintain stable extensions.code semantics.Load only the file needed for the task.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.