返回顶部
g

graceful-boundaries-audit

>

作者: admin | 来源: ClawHub
源自
ClawHub
版本
V 1.2.0
安全检测
已通过
121
下载量
0
收藏
概述
安装方式
版本历史

graceful-boundaries-audit

# Graceful Boundaries Conformance Audit ## What This Skill Does Assesses a URL's Graceful Boundaries conformance level through direct HTTP inspection, then provides a concrete implementation plan for reaching the next level. The output is an actionable document with code examples the user can implement immediately. No special tooling or dependencies required — the skill works with any HTTP client. ## When To Use This Skill - User provides a URL and asks about its rate limit communication - User asks to check Graceful Boundaries conformance for a service - User wants to know what level an API is at - User asks how to improve their API's 429 responses - User wants to elevate from one conformance level to the next - User says "audit this API" in the context of rate limits or boundaries ## Assessment Process Follow these phases in order. Each phase builds on the previous one. ### Phase 1: Discovery Fetch Fetch the limits discovery endpoint directly. Try both standard paths: ``` GET <url>/api/limits GET <url>/.well-known/limits ``` Use curl, fetch, or any HTTP client available in the current environment. No special tooling is required. If either path returns a JSON response, record: - Whether the response contains a `service` field - Whether the response contains a `limits` object - Whether limit entries are well-formed (each has `type`, `maxRequests`, `windowSeconds`, `description`) - Whether a `conformance` field is present (self-declared level) - Whether the response includes a `Cache-Control` header with `s-maxage` - Whether `changelog` or `feed` URLs are present (v1.1 change discovery) - Whether `resource-dedup` entries include `returnsCached: true` (v1.1) If neither path returns a valid response, the service has no discovery endpoint and cannot be Level 2 or above. **Optional accelerator:** If the graceful-boundaries repo is cloned locally, the automated checker provides a structured report: ```bash node evals/check.js <url> --json ``` This is a convenience, not a requirement. The skill works entirely through direct HTTP inspection. ### Phase 2: Proactive Header Check If the limits endpoint documents specific API endpoints, fetch one of them and check for proactive headers on the success response: - `RateLimit: limit=N, remaining=N, reset=N` - `RateLimit-Policy: N;w=N` These headers indicate Level 4 conformance. **Do NOT attempt to trigger 429s.** That would require hammering the service and is not appropriate for an audit. Level 1 and Level 3 conformance cannot be verified without observing an actual refusal response — note these as unverifiable and explain why. ### Phase 3: Level Assessment Map findings to the conformance levels defined in spec.md: | Level | How to verify | |---|---| | N/A | Site has no API or agentic surface | | 0 | Service exists but no limits endpoint, no structured responses | | 1 | Cannot verify without a 429 response (note as unverifiable) | | 2 | Limits endpoint exists and is well-formed | | 3 | Cannot verify without a 429 response (note as unverifiable) | | 4 | Level 2 confirmed + proactive headers present on success responses | If the service self-declares a conformance level via the `conformance` field, compare declared vs. validated. Flag any discrepancy. Report the assessment as: - **Confirmed level**: what the evidence supports - **Declared level**: what the service claims (if any) - **Likely level**: best estimate including unverifiable aspects ### Phase 4: Gap Analysis For each level above the current confirmed level, list exactly what is missing. Reference specific sections of spec.md: **To reach Level 1** (spec sections 2 and 6): - Do ALL non-success responses (400, 401, 403, 404, 429, 500, 503) include `error`, `detail`, and `why`? (v1.1: `why` is MUST for all error classes) - Are 429 responses JSON with the 5 required fields (`error`, `detail`, `limit`, `retryAfterSeconds`, `why`)? - Does `error` use a stable machine-parseable string (snake_case)? - Does `detail` include a specific retry time in human-readable form? - Does `why` explain the purpose, not restate the error? - Is `retryAfterSeconds` a non-negative integer? - Does the HTTP response include a `Retry-After` header? - For HTML 429 pages: is there a `<meta name="retry-after" content="N">` tag or a `<link rel="alternate" type="application/json" href="...">`? (v1.1) **To reach Level 2** (spec section 1): - Does a limits endpoint exist at `/api/limits` or `/.well-known/limits`? - Does it return JSON with a `limits` object? - Are limit entries well-formed (type, maxRequests, windowSeconds, description)? - Is the endpoint cacheable (Cache-Control header)? - Does it include `changelog` or `feed` URLs for change discovery? (v1.1, optional but recommended) **To reach Level 3** (spec sections 3 and 5): - Do refusal responses include constructive guidance fields? - Which guidance categories apply? (`cachedResultUrl`, `alternativeEndpoint`, `upgradeUrl`, `humanUrl`, `cached`) - Does the service prefer guidance in the recommended order: use cached > try alternative > upgrade > wait > human handoff? - For `resource-dedup` limits: does the service return cached results as a 200 instead of a 429? If so, does the discovery endpoint include `returnsCached: true` so agents skip retry logic? (v1.1) **To reach Level 4** (spec section 4): - Are `RateLimit` headers present on success responses? - Do they include all three components: `limit`, `remaining`, `reset`? - Is a `RateLimit-Policy` header present? - Does the policy format match `N;w=N`? ### Phase 5: Implementation Guidance Provide concrete, copy-pasteable code for each gap. Use the service's actual domain and endpoints in examples. **Limits discovery endpoint skeleton:** ```json { "service": "<service name>", "description": "<what the service does>", "conformance": "level-2", "changelog": "https://<domain>/api/changelog.json", "feed": "https://<domain>/feed.json", "limits": { "<endpoint-key>": { "endpoint": "<path>", "method": "<HTTP method>", "limits": [ { "type": "ip-rate", "maxRequests": 100, "windowSeconds": 3600, "description": "100 requests per IP per hour." }, { "type": "resource-dedup", "maxRequests": 1, "windowSeconds": 86400, "returnsCached": true, "description": "One operation per resource per day. Repeat requests return the cached result." } ] } } } ``` **Structured refusal body:** ```json { "error": "rate_limit_exceeded", "detail": "You have exceeded the limit of 100 requests per hour. Try again in <N> seconds.", "limit": "100 requests per IP per hour", "retryAfterSeconds": 1234, "why": "<one sentence explaining why this limit exists — not just restating the error>" } ``` **Constructive guidance fields** (add to the refusal body): ```json { "cachedResultUrl": "/api/result?id=<resource>", "alternativeEndpoint": "/api/<alternative>", "upgradeUrl": "https://<domain>/pricing", "humanUrl": "https://<domain>/contact" } ``` **Proactive headers** (add to success responses): ``` RateLimit: limit=100, remaining=99, reset=3600 RateLimit-Policy: 100;w=3600 ``` Reference security considerations where relevant: - SC-1: Published limits may be higher than enforced limits - SC-2: `why` must describe the category of protection, not the mechanism - SC-3: `expected` must use positive descriptions - SC-6: Guidance URLs must be relative or same-origin ### Phase 6: Generate the Assessment Document Output a structured markdown document: ``` # Graceful Boundaries Assessment: <domain> ## Summary - Confirmed level: <N> - Declared level: <N or "not declared"> - Likely level: <N> ## What was checked - Limits endpoint: <path> — <found/not found> - Proactive headers: <present/absent> - Refusal format: <not verifiable without triggering a 429> ## Gaps to next level <prioritized list with spec section references> ## Implementation plan <concrete code examples using the service's actual domain> ## Security notes <relevant SC-* considerations> ``` ## What This Skill Does NOT Do - Does not implement changes on the target service - Does not deliberately trigger rate limits or 429 responses - Does not require access to the service's source code - Does not assess general API design quality beyond limit communication - Is distinct from the agent-readiness-audit skill (which assesses overall AI discoverability, not rate limit conformance specifically)

标签

skill ai

通过对话安装

该技能支持在以下平台通过对话安装:

OpenClaw WorkBuddy QClaw Kimi Claude

方式一:安装 SkillHub 和技能

帮我安装 SkillHub 和 graceful-boundaries-1776089531 技能

方式二:设置 SkillHub 为优先技能安装源

设置 SkillHub 为我的优先技能安装源,然后帮我安装 graceful-boundaries-1776089531 技能

通过命令行安装

skillhub install graceful-boundaries-1776089531

下载 Zip 包

⬇ 下载 graceful-boundaries-audit v1.2.0

文件大小: 54.52 KB | 发布时间: 2026-4-14 14:03

v1.2.0 最新 2026-4-14 14:03
Agent-facing channels: builder skill (SKILL-builder.md), spec Appendix B for autonomous implementers, CLAUDE.md snippet. Landing page at gracefulboundaries.dev. Checker now validates Level 4 proactive headers. Error field requires snake_case. All URLs updated to gracefulboundaries.dev.

Archiver·手机版·闲社网·闲社论坛·羊毛社区· 多链控股集团有限公司 · 苏ICP备2025199260号-1

Powered by Discuz! X5.0   © 2024-2025 闲社网·线报更新论坛·羊毛分享社区·http://xianshe.com

p2p_official_large
返回顶部