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.
67
84%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
Low
Low-risk findings worth noting
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.
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.validate and run may open identity files or contact providers. Reproduce
with disposable local data before provisioning a supplied deployment config.tmp/breakfix/. A direct explanation or completed small fix does
not automatically require an issue artifact; honor the requested deliverable.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.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.403 invalid_request in a real browser: compare the
consent response's Referrer-Policy with the POST's actual Origin. In
go-authcrunch v1.2.6, no-referrer produces Origin: null, which its own
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
for this version, then verify both successful consent and rejection of
cross-origin/forged-CSRF submissions. The library default needs a separate
upstream fix. 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.authorize with <policy> wiring,
token cookie/header availability, verify keys, ACL rules, roles, claim names,
bypass rules, and injected identity headers.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.{env.*} tokens,
secret IDs, configured secrets manager modules, fallback behavior, and
resolved fixture expectations.When solving the issue directly, include:
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.
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>.mdUse 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 contextPreserve 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.
If repository skill guidance was missing, incorrect, ambiguous, or not specific enough for the issue, capture:
Prefer turning repeated support issues into skill improvements so future agents can generate secure, production-ready guidance on the first attempt.
a48553d
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.