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

break-fix-troubleshooting

Investigate caddy-security deployment and runtime failures using configuration, logs, version details, and HTTP evidence. The skill helps identify a focused correction or document an unresolved issue with a useful handoff, while keeping observed facts separate from hypotheses and redacting secrets.

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

원문원문 설명 보기

Diagnose caddy-security deployment and runtime failures from configs, logs, versions, and HTTP evidence. Use for focused fixes, unresolved support handoffs, or preparing break-fix issue reports.

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • Diagnosing login, callback, or authorization failures
  • Finding a minimal correction for a Caddy configuration
  • Preparing a redacted break-fix issue report
  • Handing off a problem that needs an upstream fix

포함된 파일(2)

  • SKILL.md9.7 KB
  • agents/openai.yaml260 B

SKILL.md(원문)

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

Break-Fix Troubleshooting

Purpose

Use this skill to turn a failing caddy-security deployment into either a concrete fix or a high-quality break-fix report. Treat the repository skills in .codex/skills as the primary task documentation; https://docs.authcrunch.com is legacy context, not the source of truth.

Follow the repository scope when reproducing or fixing a report. A failure traced to go-authcrunch or an external plugin does not permit sibling edits or sibling build/test commands. Keep reproductions and reports here, identify the required upstream fix as separate work, and continue any correction that can be completed in this module.

Workflow

  1. Identify the intended auth flow, protected routes, observed symptom, expected behavior, and whether the failure happens during Caddyfile adaptation, provisioning, login, callback handling, authorization, upstream proxying, or token/session validation.
  2. Inspect supplied evidence first and gather only missing details that can distinguish the likely causes: relevant Caddyfile, logs, HTTP/browser status, caddy version, caddy security version, caddy list-modules --versions | rg '(auth|security)', operating environment, recent changes, and last known working version. Use the actual installed binary name; older binaries may lack security version.
  3. Redact secrets while preserving directive names, route structure, identity provider names, policy names, cookie names, issuer URLs, redirect paths, roles, claim names, and module versions.
  4. Use configuration to analyze Caddyfiles and select the affected authentication, authorization, identity, or runtime domain. Test selection and fixture/CI mechanics follow the testing contract.
  5. Compare the configuration to the parser files and fixtures named by the loaded skills. Prefer the smallest valid corrected configuration over a broad rewrite.
  6. Validate with the narrowest available command. Use Caddy adaptation or focused Go tests when local context supports it; otherwise describe the exact command the reporter should run. Adaptation does not prove runtime behavior; validate and run may open identity files or contact providers. Reproduce with disposable local data before provisioning a supplied deployment config.
  7. Report the root cause, the minimal fix, validation performed, remaining uncertainty, and any repository-skill gap discovered during the work.
  8. For an issue-preparation request or a useful unresolved handoff, write the report under tmp/breakfix/. A direct explanation or completed small fix does not automatically require an issue artifact; honor the requested deliverable.

Symptom Checks

  • Adapt or provision errors: check directive placement, block nesting, argument counts, module availability, external plugin registration, and env or secret placeholder resolution.
  • Login failures: check enabled identity stores/providers, portal path routing, credentials, user transforms, cookie settings, crypto keys, and clock skew.
  • Portal API failures: check Accept: application/json or format=json, portal base path, latest sandbox_secret in challenge flows, token source headers/cookies, /beacon versus /whoami semantics, and whether admin endpoints have enable admin api plus an admin session.
  • Sandbox or MFA lockouts: check checkpoint order, require mfa transforms, registered TOTP/U2F tokens, sandbox expiration, repeated password failures, MFA failure counters on the user record, and whether the user is being forced to register an MFA token during login.
  • OAuth/OIDC callback failures: check redirect URI, issuer/discovery URL, client ID/secret, scopes, PKCE settings, state/cookie behavior, trusted redirects, reverse-proxy headers, and provider-specific constraints.
  • OIDC consent POST 403 invalid_request in a real browser: compare the consent response's Referrer-Policy with the POST's actual Origin. Legacy consent responses using no-referrer produce Origin: null, which the provider's same-origin check rejects. HtmlUnit/HTTP-client success does not rule this out. Preserve headless Chrome screenshots and network evidence; do not rewrite Origin or relax CSRF/origin validation. Apply the explicit Caddy consent response policy only after confirming the deployment emits those legacy headers, then verify both successful consent and rejection of cross-origin/forged-CSRF submissions. The current provider owns its corrected response headers. If the consent Origin is correct but Chrome aborts the callback with net::ERR_ABORTED, inspect form-action: its source list must permit the registered callback origin as well as self. Keep the exact redirect checks; do not replace the source list with a wildcard. See the conformance workflow.
  • SAML failures: check entity IDs, ACS URLs, certificates, signing keys, metadata, role attributes, and whether the issue is an identity-provider flow or an SSO app-provider flow.
  • LDAP failures: check bind credentials, search base, filters, username and group attributes, realm, TLS settings, network reachability, exact one-user search results, role-producing group mappings, and the service-bind then user-rebind flow.
  • Registration failures: check messaging provider delivery, confirmation link base URL, passcode expiry, domain/MX restrictions, dropbox path, admin email, target identity store, and whether manual approval or database transfer is still required.
  • Authorization denials: check route order, authorize with <policy> wiring, token cookie/header availability, verify keys, ACL rules, roles, claim names, bypass rules, and injected identity headers.
  • Basic/API-key auth failures: check X-Auth-Realm or configured realm header, API key header name, one with ... realm ... line per accepted realm, System API keys for remote portals, and whether the response is a 401 auth failure or a browser-style redirect due to missing credentials.
  • Redirect loops or missing sessions: check cookie domain/path/security flags, auth URL, same-site behavior, source address validation, TLS termination, and whether authn and authz use matching crypto material.
  • Runtime replacement or secrets issues: check unresolved {env.*} tokens, secret IDs, configured secrets manager modules, fallback behavior, and resolved fixture expectations.

Response Shape

When solving the issue directly, include:

  • Root cause and confidence level.
  • Minimal config change or explanation of the required deployment change.
  • Evidence used, including relevant log lines or module versions.
  • Validation commands run or recommended.
  • Security notes about redacted or unsafe material.
  • Remaining questions only when they block a reliable fix.

When helping a reporter file a break-fix issue, fill or request the fields from .github/ISSUE_TEMPLATE/break-fix.md: issue description, skill-guided troubleshooting prompt and findings, full redacted Caddyfile, logs/errors, version information, expected behavior, actual behavior, skill/documentation gap, and additional context.

Issue Report File

For break-fix issue preparation, create tmp/breakfix/ if it does not exist and write a Markdown file named with this pattern:

YYYYMMDD_HHMM_<short-issue-slug>.md

Use the local timestamp at report creation time. Keep the slug short, lowercase, and hyphen-separated, such as oauth-callback-loop or ldap-bind-failure.

The Markdown file must contain enough information to create a GitHub issue from .github/ISSUE_TEMPLATE/break-fix.md without reconstructing context from the chat. Include these sections:

  • # breakfix: <concise title>
  • ## Describe the issue
  • ## Skill-guided troubleshooting
  • ## Configuration
  • ## Logs and errors
  • ## Version information
  • ## Expected behavior
  • ## Actual behavior
  • ## Skills or documentation gap
  • ## Additional context

Preserve fenced code blocks for Caddyfiles, logs, commands, and version output. Redact secrets, tokens, cookies, passwords, and private keys, but keep names, routes, roles, claims, issuer URLs, redirect paths, and module versions needed for diagnosis. Use TODO only for fields the reporter still needs to provide.

Skill Gap Feedback

If repository skill guidance was missing, incorrect, ambiguous, or not specific enough for the issue, capture:

  • The exact prompt or task that produced the weak guidance.
  • The smallest redacted Caddyfile and log excerpt that demonstrates the gap.
  • The correct behavior or configuration pattern, with parser or fixture references when possible.
  • The skill file that should be updated, if identifiable.

Prefer turning repeated support issues into skill improvements so future agents can generate secure, production-ready guidance on the first attempt.

Acceptance criteria

  • A supplied reproduction leads to the smallest evidence-backed correction or an explicit unresolved boundary; observed facts and hypotheses stay distinct.
  • A missing plugin, provider outage, or upstream defect is not described as fixed by parser success. Sensitive inputs remain redacted in any handoff.
  • A report request produces a self-contained issue artifact. A quick explanation can finish without one, and diagnosis does not activate a live deployment.

리뷰

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

댓글

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

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

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

0 / 1,000자

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

같은 저장소의 스킬

Build or troubleshoot HTTP clients for an authentication portal’s JSON login, token refresh, Documents, profile, and admin APIs. The skill explains request and response contracts, browser and native transports, and public signing-key discovery so clients can interact with the configured portal correctly.

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

  • Implement a JSON login client for a portal
  • Troubleshoot browser or native token refresh
  • Call profile, Documents, or admin endpoints
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

Use these conventions to implement or review caddy-security Go code, Caddy modules, Caddyfile parsers, and HTTP integrations. Keep app boundaries and lifecycle behavior clear, delegate authentication logic to go-authcrunch, and handle errors and logs safely.

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

  • Reviewing a Caddyfile parser change
  • Adding a Caddy module or HTTP handler
  • Checking app lifecycle and cleanup behavior
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

Build or review caddy-security Caddyfiles by starting with the security app and wiring authenticate or authorize routes to named portals and policies. Use its domain map to find focused guidance for the requested login, provider, storage, or integration setup.

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

  • Drafting a complete caddy-security Caddyfile
  • Wiring portal authentication into routes
  • Connecting authorization policies to protected paths
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

Configure Caddy authentication portals and connect them to protected routes. Select login backends, set trusted login and logout redirect rules, and wire portal behavior such as refresh and Documents storage while relying on focused skills for specialized settings.

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

  • Create a portal and connect it to protected routes
  • Choose which identity stores and providers can log in
  • Set trusted login and logout redirect destinations
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

Set authentication portal cookie names, prefixes, domains, paths, and browser attributes, including refresh-cookie overrides. The guidance explains naming precedence, validation, and how authorization policies must explicitly discover matching token cookies.

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

  • Giving portal cookies a shared prefix
  • Overriding one cookie name
  • Setting cookie paths and domains
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

Configure optional cross-device portal login, where one device starts a request and another scans a QR code and explicitly approves it after fresh authentication. Review browser binding, cancellation, expiry, credential delivery, and lifecycle behavior through Caddy.

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

  • Add QR-based login approval from a second device
  • Require explicit approval after fresh authentication
  • Review cancellation and expired request behavior
greenpau/caddy-security2.3천2026년 10월 26일 업데이트

greenpau의 스킬 모두 보기

이 스킬의 문제 신고