Community코딩 & 개발github.com

getedgehq/http-error-triage

타사 API의 HTTP 오류를 진단하기 전에 실행하세요. 실제 자격 증명/권한 문제를 CDN/WAF 차단, 잘못된 엔드포인트 또는 클라이언트 서명 금지와 구분합니다. API가 401/403/402/429를 반환하고 '키가 죽었다', '크레딧이 소진되었다', '플랜에 접근 권한이 없다', '속도 제한에 걸렸다'고 말하려 할 때 사용하세요.

http-error-triage란 무엇인가요?

이 스킬은 타사 API에서 HTTP 오류가 발생했을 때 단순히 상태 코드만 보고 원인을 추측하는 실수를 방지합니다. 실제로는 자격 증명 문제, CDN/WAF 차단, 엔드포인트 오류, 클라이언트 서명 금지 등 다양한 원인이 있을 수 있는데, 이 스킬은 세 가지 간단한 제어 실험(잘못된 자격 증명 전송, 존재하지 않는 경로 요청, 응답 헤더 확인)을 통해 오류의 진짜 원인을 식별하는 방법을 제시합니다. 최종 사용자에게는 오류의 근본 원인을 명확히 보고하고, 단순히 '403이 발생했다'고 말하는 대신 '인증과 무관한 상류 차단'임을 알릴 수 있도록 합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/getedgehq/skills/tree/main/http-error-triage

Installed? Explore more 코딩 & 개발 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

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

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

문서

HTTP 오류 심층 분석

HTTP 오류는 요청이 실패했음을 알려줍니다. 보통 왜 실패했는지는 알려주지 않습니다. 403이 발생했다고 해서 "키가 죽었다"라고 결론 내리는 것은 숫자에 불과한 추측입니다.

실제 사례(2026-07-30)에서 비롯되었습니다: 타사 연락처 보강 API가 6일 동안 모든 호출에 403 error code: 1010을 반환했습니다. 이는 "키에 권한이 없음", "크레딧 소진", "월별 할당량 초과"로 해석되었습니다. 이 믿음을 바탕으로 756줄의 브라우저 자동화 우회 방법이 구축되었고, 고객에게는 괜찮은 플랜을 확인하라고 요청할 뻔했습니다. 실제 원인은 User-Agent 누락으로 인해 CDN이 클라이언트를 에지에서 차단한 것이었습니다. 하나의 헤더로 해결되었습니다: 200 OK, 전체 데이터, 크레딧 잔액은 처음부터 거기에 있었습니다.

진단 전에 다음 세 가지 제어를 실행하세요

1. 잘못된 자격 증명 제어. 동일한 요청을 의도적으로 잘못된 자격 증명으로 보내고, 또 아예 자격 증명 없이 보냅니다.

for label, key in [("real", REAL_KEY), ("garbage", "0"*36), ("empty", "")]:
    ...  # 동일한 URL, 동일한 메서드, 동일한 헤더

세 가지 모두 동일한 상태와 본문을 반환한다면, 오류는 자격 증명과 관련이 없습니다. 권한, 할당량 또는 유효성에 대한 정보를 전혀 제공하지 않습니다. 키에 대한 추론을 중단하세요.

2. 무의미한 경로 제어. 분명히 존재하지 않는 경로와 사이트 루트를 요청합니다.

GET https://api.example.com/definitely-not-a-real-path-12345
GET https://api.example.com/
GET https://www.example.com/          # 그들의 마케팅 사이트

API 오류가 마케팅 사이트에서도 동일하게 발생한다면, 원본 앞에서 차단되고 있는 것입니다. API 호출에 관한 어떤 것도 도움이 되지 않습니다.

3. 응답 본문뿐만 아니라 헤더도 읽으세요.

except urllib.error.HTTPError as e:
    print(e.code, e.headers.get("server"), e.read()[:200])

"인증" 오류에 server: cloudflare가 있으면 결정적인 단서입니다. cf-ray, x-amzn-waf, akamai도 마찬가지입니다. 이들은 인프라스트럭처이며 API가 아닙니다.

알려진 패턴

증상실제 원인해결 방법
403 + 본문 error code: 1010, server: cloudflareCloudflare가 클라이언트 서명을 차단함실제 브라우저 User-Agent 전송
모든 경로(/ 포함)에 대해 동일한 오류에지/WAF 차단 또는 IP 차단UA 변경 후 IP/프록시 변경
402실제로 크레딧 소진: 요청이 인증됨충전; 키는 정상
성공 직후 429실제 속도 제한요청 속도 조절, 백오프 추가
필드 메시지가 있는 400API에 도달했으며 인증이 통과됨페이로드 수정; 이는 좋은 신호

400 유효성 검사 오류는 심층 분석에 성공 신호입니다. 인증이 수락되었음을 증명합니다.

서버 측 API 호출을 위한 기본 헤더

Python의 urllib는 User-Agent: Python-urllib/3.x를 보내는데, 많은 WAF에서 이를 무조건 차단합니다. 항상 설정하세요:

headers = {
    "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) "
                  "AppleWebKit/537.36 (KHTML, like Gecko) Chrome/126.0 Safari/537.36",
    "Accept": "application/json",
    "Content-Type": "application/json",
}

그런 다음 대규모 실행 전에 비용을 측정하세요

일단 작동하면, 지출을 추정하지 마세요. 한 번 호출하기 전후의 사용량을 읽고, 응답에서 제공업체 자체 청구 필드를 읽으세요.

before = usage(); result = call(); after = usage()
print("charged:", result.get("billing"), "| measured:", before - after)

보고할 내용

무엇을 테스트했고 무엇이 아직 알려지지 않았는지 명시하세요. "두 키 모두 403"은 빈 키가 동일한 403을 반환하는 경우 결과가 아닙니다. 대신 이렇게 말하세요: "여기서 403은 정보를 제공하지 않습니다. null 자격 증명도 동일하게 반환되며, 원인은 인증 상류에 있습니다."

Individual skills in this repo

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

getedgehq/agent-evals

Build evals for an AI agent that already does real work. Use when someone asks "how do I know my agent is right", wants to test an agent before trusting it, compare models on cost versus quality, or turn production failures into tests. Walks from first tasks and yes/no verifiers, to isolated environments, to a trace-driven improvement loop.

getedgehq/cli-ux-review

Audit a command-line tool for user-friendliness — clear situation / next-step / options in every output, colour-highlighted runnable commands, no raw jargon, no silent hangs. Invoke for "CLI UX audit", "review my CLI", "is this CLI intuitive", or before any CLI release.

getedgehq/generate-image

Generate images with OpenAI GPT Image 2 via the Codex CLI, billed through the user's ChatGPT Plus subscription (no OpenAI API key, no per-image API cost). Use when the user asks to create, generate, or make an image, picture, illustration, icon, hero graphic, or concept art from a text prompt.

getedgehq/harness-first

Diagnose and fix an unreliable, expensive, or unsafe LLM agent by auditing its harness (golden set, judge, cost caps, data layer, action approvals, tracing) before blaming or swapping the model. Use when someone says an agent is "burning tokens", "hallucinating", "brittle", gives inconsistent answers, asks whether to switch to a cheaper/better model, or wants to ship an agent or prompt change to customers.

getedgehq/linkedin-media-prep

Convert, crop, resize, and compress images and videos for optimal LinkedIn upload quality and file size. Use when the user wants to prepare a photo, image, or video for LinkedIn (profile picture, cover photo, post image, article featured image, post video, or video ad), optimize file size for LinkedIn, crop and resize for LinkedIn dimensions, convert HEIC/RAW/PNG/MOV to LinkedIn-ready JPEG or MP4, or mentions LinkedIn media requirements, specs, or limits.

getedgehq/monid

>-

getedgehq/opendraft

An 18-agent pipeline that turns one topic line into a drafted

getedgehq/people-search

Find and rank professional people for recruiting, partnerships, sales, or research from user-provided data, public web sources, an authenticated search session, or a connected provider. Use for people discovery, LinkedIn or Sales Navigator search design, profile-list ranking, or provider filter translation.

getedgehq/rocketlist

Turn a CV into a shortlist of live startup roles from Rocketlist's public job board, including adjacent job titles the person would never have searched for, each with its published salary, the evidence for the fit, and a direct apply link. Use for "find roles I would be a strong fit for", career pivots, remote or VC-backed job hunts, and salary-visible role discovery.

getedgehq/security-audit-checklist

Run a comprehensive security audit across application code, cloud infrastructure, containers, CI/CD pipelines, and infrastructure-as-code. Covers privacy compliance, OWASP basics, secret leakage, API security, IAM misconfigurations, storage exposure, Kubernetes hardening, and network security. Use when the user asks to audit, review, or harden app or cloud security, check for secrets, scan for XSS/SQLi, verify security headers, review Terraform/CloudFormation, audit AWS/GCP/Azure configs, or perform any security-focused review.

getedgehq/shadcn-first

>-

getedgehq/skills

Develop or review a branded long-form YouTube channel using Simon Kaiser's public creator-led approach: audience fit, recurring formats, natural brand integration, Time with Brand, and an organic, paid, and Shorts strategy. Use for channel strategy, format briefs, and pilots.

getedgehq/skills

Build a YouTube strategy, evidence-backed idea slate, and title plus thumbnail package using Paddy Galloway's public method. Use when planning a channel, choosing concepts, or preparing a video before filming.

getedgehq/skills

Build or review a buyer-centered strategic narrative using Andy Raskin's public method. Use for sales or investor deck stories, homepage positioning, keynotes, launch narratives, and why-now messaging.

getedgehq/skills

Turn a product URL, launch brief, or approved script into a production-ready launch video. Use for product reveals, feature announcements, SaaS launches, and narrated product films; not for generic explainers or editing existing footage.

getedgehq/strip-image-ai-metadata

Strip C2PA and AI-generation metadata from images (PNG, JPEG, WebP) to remove "Generated by AI" / "ChatGPT" / "DALL-E" labels that platforms like LinkedIn, Instagram, and X display. Use when the user wants to clean AI-generated images before posting, remove AI attribution from photos, strip C2PA manifests, sanitize image metadata for professional use, or verify whether an image contains C2PA data.

getedgehq/top-down-comms

>-

getedgehq/workplan

Create, update, or close work plans for multi-step tasks. Use when starting refactors, bug lists, feature work, migrations, or any task with 2+ steps. Also use after auto-compaction to re-orient. Triggers: "workplan", "work plan", "create a plan", "what's the plan", "where was I", or when Claude detects

관련 스킬