SDK readiness audit
Audit whether an API is actually SDK friendly and actionable. Do not generate an SDK. Diagnose gaps and provide concrete fixes.
Scope
- Accept OpenAPI (URL or local file), GraphQL schema (SDL or introspection), or REST docs (links or markdown)
- Produce a readiness scorecard, prioritized refactors, SDK pain points, and spec fix suggestions
- Avoid guessing; mark unknowns and request missing inputs
Mandatory intake questions (ask in one concise block)
- Source of truth
- OpenAPI URL or local path, GraphQL SDL/introspection, or REST docs link/markdown
- Target SDK consumers
- Primary languages or platforms (if any)
- Primary use cases or top workflows
- Auth and environments
- Auth methods, token types, and environments (prod/sandbox)
- Known pain points
- Any current client friction or support issues
If the user already provided answers, restate and confirm.
Workflow
- Load inputs
- For OpenAPI, parse: servers, security, tags, paths, components, schemas
- For GraphQL, parse: types, inputs, enums, connections, directives, deprecations
- For REST docs, build an endpoint inventory table before scoring
- Build a surface inventory
- Endpoints/operations and their purpose
- Request and response shapes
- Auth, pagination, errors, versioning, rate limits
- Evaluate with the rubric
- Score each category 0 to 5
- Cite concrete evidence (endpoint names, schema fields, headers)
- Produce outputs
- Scorecard
- Refactors with priority
- "If we shipped an SDK today" pain points
- Suggested OpenAPI fixes and x-* extensions
- Write the audit file
- Save the full output to
sdk-readiness-audit.md
- Call out unknowns
- List missing or ambiguous areas that block full confidence
Scoring rubric (0 to 5)
Score each category. Use "unknown" if evidence is missing.
0 = missing or harmful
1 = inconsistent or ad hoc
3 = workable but rough for SDKs
5 = strong and SDK friendly
Categories (weighted):
- Auth and environments (weight 2)
- Errors and error model (weight 2)
- Pagination and collection design (weight 2)
- Naming and resource model
- Consistency and conventions
- Data model quality (types, required/optional, enums, nullability)
- Filtering, sorting, and search
- Versioning and stability
- Idempotency and safety semantics
- Long running operations and async jobs
- Rate limits and retries
- Documentation and examples
- SDK metadata readiness (operationId, tags, schema names)
Overall score (0 to 100):
- Weighted average * 20
- If any critical category (auth, errors, pagination) is <= 2, cap overall at 59 and label "not ready"
Output format (required)
Write the full output to sdk-readiness-audit.md. In chat, provide a brief summary and point to the file.
Readiness verdict
- Ready / Borderline / Not ready
- Overall score
SDK readiness scorecard
- Table with category, score, evidence, and brief notes
Concrete refactors needed
- Prioritized list with P0/P1/P2
- Each item includes: current issue, why it hurts SDKs, proposed fix
If we shipped an SDK today, here is what would hurt
- Short bullet list focused on developer friction
Suggested OpenAPI fixes and x-* extensions
- Provide specific fixes and optional vendor extensions
- Use small YAML snippets when helpful
Unknowns and requested follow ups
OpenAPI fixes and x-* extensions (guidance)
Suggest fixes that improve client generation and developer experience. Examples:
- Normalize
operationId or provide x-sdk-method-name
- Group operations with tags or x-sdk-group
- Define consistent error schema (Problem Details or equivalent)
- Standardize pagination and document in x-pagination
- Mark idempotent operations with x-idempotency
- Mark retryable errors with x-retryable
- Add examples and x-examples per operation
- Clarify rate limit headers with x-rate-limit
Keep extensions minimal and consistent. Do not invent semantics that conflict with the spec.
GraphQL specific checks
- Prefer consistent connection-based pagination for lists
- Avoid unbounded lists without pagination args
- Use input objects for mutations
- Prefer enums over freeform strings
- Provide clear deprecations
- Document nullability and error behavior
REST docs specific checks
- Build an explicit endpoint inventory first
- Identify missing details (auth, error schema, pagination, versioning)
- Propose a minimal OpenAPI skeleton to close gaps
Acceptance criteria
Output is correct only if:
- All intake questions were asked or confirmed
- Evidence is cited for each score
- Refactors are concrete and actionable
- Pain points are clearly stated
- OpenAPI fixes or x-* extensions are suggested where relevant
- Unknowns are explicitly listed when information is missing
sdk-readiness-audit.md was written with the full audit
1---2name: sdk-readiness-audit3description: Audit an API surface (OpenAPI 3.0/3.1, GraphQL schema, or REST docs) for SDK readiness and developer experience. Use when asked to evaluate whether an API is SDK friendly, produce a readiness scorecard, list concrete refactors, describe "if we shipped an SDK today" pain points, or suggest OpenAPI fixes and x-* extensions to improve client generation.4---56# SDK readiness audit78Audit whether an API is actually SDK friendly and actionable. Do not generate an SDK. Diagnose gaps and provide concrete fixes.910## Scope1112- Accept OpenAPI (URL or local file), GraphQL schema (SDL or introspection), or REST docs (links or markdown)13- Produce a readiness scorecard, prioritized refactors, SDK pain points, and spec fix suggestions14- Avoid guessing; mark unknowns and request missing inputs1516## Mandatory intake questions (ask in one concise block)17181. Source of truth19 - OpenAPI URL or local path, GraphQL SDL/introspection, or REST docs link/markdown202. Target SDK consumers21 - Primary languages or platforms (if any)22 - Primary use cases or top workflows233. Auth and environments24 - Auth methods, token types, and environments (prod/sandbox)254. Known pain points26 - Any current client friction or support issues2728If the user already provided answers, restate and confirm.2930## Workflow31321. Load inputs33 - For OpenAPI, parse: servers, security, tags, paths, components, schemas34 - For GraphQL, parse: types, inputs, enums, connections, directives, deprecations35 - For REST docs, build an endpoint inventory table before scoring362. Build a surface inventory37 - Endpoints/operations and their purpose38 - Request and response shapes39 - Auth, pagination, errors, versioning, rate limits403. Evaluate with the rubric41 - Score each category 0 to 542 - Cite concrete evidence (endpoint names, schema fields, headers)434. Produce outputs44 - Scorecard45 - Refactors with priority46 - "If we shipped an SDK today" pain points47 - Suggested OpenAPI fixes and x-* extensions485. Write the audit file49 - Save the full output to `sdk-readiness-audit.md`506. Call out unknowns51 - List missing or ambiguous areas that block full confidence5253## Scoring rubric (0 to 5)5455Score each category. Use "unknown" if evidence is missing.56570 = missing or harmful581 = inconsistent or ad hoc593 = workable but rough for SDKs605 = strong and SDK friendly6162Categories (weighted):6364- Auth and environments (weight 2)65- Errors and error model (weight 2)66- Pagination and collection design (weight 2)67- Naming and resource model68- Consistency and conventions69- Data model quality (types, required/optional, enums, nullability)70- Filtering, sorting, and search71- Versioning and stability72- Idempotency and safety semantics73- Long running operations and async jobs74- Rate limits and retries75- Documentation and examples76- SDK metadata readiness (operationId, tags, schema names)7778Overall score (0 to 100):7980- Weighted average * 2081- If any critical category (auth, errors, pagination) is <= 2, cap overall at 59 and label "not ready"8283## Output format (required)8485Write the full output to `sdk-readiness-audit.md`. In chat, provide a brief summary and point to the file.86871. Readiness verdict88 - Ready / Borderline / Not ready89 - Overall score90912. SDK readiness scorecard92 - Table with category, score, evidence, and brief notes93943. Concrete refactors needed95 - Prioritized list with P0/P1/P296 - Each item includes: current issue, why it hurts SDKs, proposed fix97984. If we shipped an SDK today, here is what would hurt99 - Short bullet list focused on developer friction1001015. Suggested OpenAPI fixes and x-* extensions102 - Provide specific fixes and optional vendor extensions103 - Use small YAML snippets when helpful1041056. Unknowns and requested follow ups106 - Only if needed107108## OpenAPI fixes and x-* extensions (guidance)109110Suggest fixes that improve client generation and developer experience. Examples:111112- Normalize `operationId` or provide x-sdk-method-name113- Group operations with tags or x-sdk-group114- Define consistent error schema (Problem Details or equivalent)115- Standardize pagination and document in x-pagination116- Mark idempotent operations with x-idempotency117- Mark retryable errors with x-retryable118- Add examples and x-examples per operation119- Clarify rate limit headers with x-rate-limit120121Keep extensions minimal and consistent. Do not invent semantics that conflict with the spec.122123## GraphQL specific checks124125- Prefer consistent connection-based pagination for lists126- Avoid unbounded lists without pagination args127- Use input objects for mutations128- Prefer enums over freeform strings129- Provide clear deprecations130- Document nullability and error behavior131132## REST docs specific checks133134- Build an explicit endpoint inventory first135- Identify missing details (auth, error schema, pagination, versioning)136- Propose a minimal OpenAPI skeleton to close gaps137138## Acceptance criteria139140Output is correct only if:141142- All intake questions were asked or confirmed143- Evidence is cited for each score144- Refactors are concrete and actionable145- Pain points are clearly stated146- OpenAPI fixes or x-* extensions are suggested where relevant147- Unknowns are explicitly listed when information is missing148- `sdk-readiness-audit.md` was written with the full audit