Skip to content
cccskills
FreePublished on GitHub

endpoint-validator

Deterministic API endpoint validation with pass/fail reporting.

The English summary is being prepared. Showing the original description.

See how to install

Files included (4)

  • SKILL.md4.2 KB
  • references/auth-endpoint-patterns.md7.6 KB
  • references/endpoint-config-preferred-patterns.md6.7 KB
  • references/security-headers.md6.2 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Endpoint Validator Skill

Deterministic HTTP endpoint validation: discover config, test each endpoint against expectations, report pass/fail with CI-compatible exit codes.

Deep References

Load on demand when the signal matches.

SignalReferenceContent
Security header WARNs, HSTS/CSP/X-Framereferences/security-headers.mdHeader checks, required values, remediation
Config errors, hardcoded IPs, timeoutsreferences/endpoint-config-preferred-patterns.mdConfiguration failure modes and fixes
401/403 failures, auth patternsreferences/auth-endpoint-patterns.mdBearer, API-key, cookie auth validation

Instructions

Phase 1: DISCOVER

Read repository CLAUDE.md for base URL conventions or env var names.

Search for endpoint config in order: endpoints.json in project root, tests/endpoints.json, inline specification from user. Prefer version-controlled config over ad-hoc lists.

Config shape:

{
  "base_url": "http://localhost:8000",
  "endpoints": [
    {"path": "/health", "expect_status": 200},
    {"path": "/api/v1/users", "expect_key": "data", "timeout": 10},
    {"path": "/api/v1/search?q=test", "max_time": 2.0}
  ]
}

Endpoint fields: path (required), expect_status (default 200), expect_key (top-level JSON key), timeout (default 5s), max_time (SLOW threshold), method (default GET), headers (per-endpoint).

Rules:

  • Warn before POST/PUT/DELETE against production base URLs.
  • Use hostnames or ${ENV_VAR} in base_url, not hardcoded IPs.
  • Confirm base URL reachable before the full suite.

Gate: config parsed, base URL reachable, at least one endpoint defined.

Phase 2: VALIDATE

Execute, do not reason. Run the request. Paste the exit code and output.

Test endpoints sequentially. For each:

  1. Send request with configured method and timeout.
  2. Check status code against expect_status. Mismatch -> FAIL.
  3. If expect_key set, parse JSON and check key exists. Missing/invalid -> FAIL.
  4. If max_time set and elapsed exceeds it -> SLOW.
  5. On non-localhost URLs, check security headers (HSTS, CSP, X-Content-Type-Options, X-Frame-Options). Missing -> WARN (not FAIL). Skip HSTS on HTTP-only base URLs. Skip X-Frame-Options if CSP has frame-ancestors.

Failure handling: connection refused -> FAIL "Connection refused"; timeout -> FAIL "Timeout after Ns"; invalid JSON on expect_key -> FAIL "Invalid JSON response".

Gate: all endpoints tested, each has PASS/FAIL/SLOW verdict.

Phase 3: REPORT

Format:

ENDPOINT VALIDATION REPORT
==========================
Base URL: http://localhost:8000
  /api/health                    200 OK      45ms
  /api/products                  500 FAIL   "Internal Server Error"
  /api/slow                      200 SLOW   3.2s > 2.0s threshold

SUMMARY: Passed 13/15 (86.7%), Failed 1, Slow 1

Exit 0 if all passed. Exit 1 if any failed.

Error Handling

ErrorCauseFix
Base URL unreachableWrong port or service downss -tlnp to confirm port
All endpoints timeoutWrong host or proxy issuecurl -v a single endpoint
JSON parse failure on expect_keyNon-JSON response (HTML/XML)Remove expect_key or check Content-Type
FAIL on intentional 404Default expect_status is 200Set "expect_status": 404
401 on auth endpointMissing/expired credentialsAdd auth header; see references/auth-endpoint-patterns.md

CI Integration

# Pre-deployment gate with curl
jq -r '.endpoints[].path' endpoints.json | while read path; do
  curl -sf "http://localhost:8000$path" > /dev/null || { echo "FAIL: $path"; exit 1; }
done

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Manage multiple Claude Code accounts: add, list, check, launch, and install shell aliases for 10+ isolated CLAUDE_CONFIG_DIR profiles.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

Improve architecture across modules by deepening interfaces.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

Assessment: read-only inspection, codebase overview, value analysis, health checks, ADR consultation, decision analysis, multi-perspective critique.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

Background memory consolidation — overnight review, merge, and injection payload for memory files.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

Jev-driven browser automation: Jev picks operations, programs execute, a text model writes field values only when Jev cannot pick one from the goal.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

Write, compose, integrate, and improve programs that call Jev, TypeSafe's System One judgment model.

The English summary is being prepared. Showing the original description.

notque/vexjoy-agent442Updated Oct 17, 2026

See all skills by notque

Report a problem with this skill