
docyrus-api-doctor
Run after making Docyrus API changes to catch bugs, performance issues, and code quality problems. Use when implementing or modifying code that uses Docyrus collection hooks (.list, .get, .create, .update, .delete), direct RestApiClient calls, query payloads with filters/calculations/formulas/childQueries/pivots, or TanStack Query integration with Docyrus data sources. Triggers on tasks involving Docyrus API logic, data fetching, mutations, or query payload construction.
- Installs
- 91
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/docyrus/agent-skills --skill docyrus-api-doctor- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads docyrus-api-doctor automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Docyrus API Doctor
Post-implementation checklist for Docyrus API code. Run through each applicable check after writing or modifying API logic. Fix every issue found before considering the task complete.
How to use: After implementing API logic, scan the changed code against each check below. Skip checks that don't apply to the code at hand. For detailed explanations and fix examples, read references/checklist-details.md.
BUG — Will Cause Errors
| # | Check | What to look for |
|---|---|---|
| B1 | Missing columns parameter | Any .list() or .get() call without a columns property. Without it, only id is returned. |
| B2 | limit: 0 in query payload | limit set to 0 causes an API error. Remove limit entirely or set a positive integer. |
| B3 | Child query key not in columns | If childQueries defines key orders, the string orders must also appear in columns. |
| B4 | Formula key not in columns | If formulas defines key total, the string total must also appear in columns. |
| B5 | Aggregation via @ column syntax | Using count@field or sum@field in columns. Use the calculations parameter instead. |
| B6 | distinctColumns with calculations | These are mutually exclusive. Use calculations for aggregation. |
| B7 | Formula extract input count | extract blocks must have exactly 1 input. |
| B8 | Formula not operand count | not blocks must have exactly 1 operand. |
| B9 | Formula and/or operand count | and/or blocks must have at least 2 operands. |
| B10 | Formula math operand count | Math operations (+, -, *, /, %) must have at least 2 operands. |
| B11 | Formula case without when | case expressions must have at least 1 when clause. |
| B12 | Uncast literal in jsonb_build_object | String literals inside jsonb_build_object need explicit "cast": "text" — auto-cast only works inside concat/concat_ws. |
PERFORMANCE — Degrades Speed or Wastes Resources
| # | Check | What to look for |
|---|---|---|
| P1 | Unnecessary limit on aggregation queries | When using calculations without needing raw rows, don't send limit. Aggregation returns a single grouped result naturally. |
| P2 | fullCount just to get a total count | If you only need the count (not the rows), use calculations: [{ func: 'count', field: 'id', name: 'total' }] instead of fullCount: true with row fetching. |
| P3 | Unnecessary columns on calculation-only queries | When using calculations and only reading aggregated values, don't send columns. The calculation result is returned without needing column selection. |
| P4 | Over-fetching columns | Columns selected in columns but never read in the consuming code. Only select what you render or process. |
| P5 | Large limit without pagination | limit > 200 without offset/fullCount pagination risks slow responses and high memory usage. |
| P6 | Missing expand causing N+1 | Rendering relation/enum/user field .name but not including that field in expand. Without expand, you get only the ID. |
| P7 | Fetching rows for existence checks | Fetching records just to check if any exist. Use calculations count instead. |
| P8 | Redundant overlapping queries | Multiple queries on the same data source fetching overlapping columns that could be combined into one. |
CODE QUALITY — Causes Maintenance Pain
| # | Check | What to look for |
|---|---|---|
| Q1 | Heavy as type assertions on responses | Casting API responses with as Array<...> without runtime validation. Prefer typed collection return types or add validation. |
| Q2 | Missing enabled on dependent queries | useQuery that depends on a runtime value (e.g., recordId) but lacks enabled: !!recordId. The query fires with undefined. |
| Q3 | No error handling on mutations | .create(), .update(), .delete() calls without try/catch or error feedback to the user. |
| Q4 | Missing query invalidation after mutations | After create/update/delete, related query keys must be invalidated so lists refresh. |
| Q5 | Serial cache invalidations | Multiple await queryClient.invalidateQueries(...) in sequence. Use Promise.all() for independent invalidations. |
| Q6 | Using deprecated expandTypes | Replace with the expand parameter. |
| Q7 | Hardcoded data source paths | Raw client.get('/v1/apps/base/data-sources/project/items') instead of using generated collection hooks. |
| Q8 | distinctColumns without orderBy | distinctColumns requires orderBy to define which row wins per group. |
How to Run
- Identify all files changed in this task that contain Docyrus API calls
- For each file, scan for
.list(,.get(,.create(,.update(,.delete(,client.get(,client.post(,client.patch(,client.delete( - Check each call site against the BUG checks (B1-B12)
- Check query payloads against PERFORMANCE checks (P1-P8)
- Check surrounding code (hooks, error handling, invalidation) against CODE QUALITY checks (Q1-Q8)
- Fix all issues found, starting with BUG category
References
references/checklist-details.md— Detailed explanation, detection pattern, and before/after fix example for every check item
FAQ
What does the docyrus-api-doctor skill do?
Run after making Docyrus API changes to catch bugs, performance issues, and code quality problems. Use when implementing or modifying code that uses Docyrus collection hooks (.list, .get, .create, .update, .delete), direct RestApiClient calls, query payloads with filters/calculations/formulas/childQueries/pivots, or TanStack Query integration with Docyrus data sources. Triggers on tasks involving Docyrus API logic, data fetching, mutations, or query payload construction.
How do I install docyrus-api-doctor?
Run npx skills add https://github.com/docyrus/agent-skills --skill docyrus-api-doctor in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/docyrus-api-doctor/ (personal) or .claude/skills/docyrus-api-doctor/ (project).
Which AI agents can use docyrus-api-doctor?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is docyrus-api-doctor safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains docyrus-api-doctor?
It is published by docyrus in docyrus/agent-skills. It has 91 recorded installs.
More from docyrus/agent-skills
docyrus-api-dev
docyrus/agent-skills
Develop applications using the Docyrus API with @docyrus/api-client and @docyrus/signin libraries. Use when building apps that authenticate with Docyrus OAuth2 (PKCE, iframe, client credentials, device code), make REST API calls to Docyrus data source endpoints, construct query payloads with filters, aggregations, formulas, pivots, and child queries, or integrate with external connectors (discover connectors, send requests through provider auth, run actions). Triggers on tasks involving Docyrus API integration, @docyrus/api-client usage, @docyrus/signin authentication, data source query building, Docyrus REST endpoint consumption, connector discovery, or external provider requests.
docyrus-cli-app
docyrus/agent-skills
Use the Docyrus CLI (docyrus) to interact with the Docyrus platform from the terminal. Use when the user asks to authenticate, list apps, query or manage data records (ds), manage dev app data source schema objects (studio) including data sources, fields, enums, data views, forms, webforms, HTML/PDF export templates, and email templates, manage automations and their triggers/action nodes (automation), build or edit custom AI agents and their sub-resources (agent), set an app's AI agent context or manage app-scoped AI tools (apps), list tenant email accounts and send emails (messaging), manage tenant account settings — brands, the current user's profile, and tenant regional/formatting preferences (account), discover and call connectors (connect), send API requests, switch tenants/accounts, discover tenant OpenAPI specs, drive browser automation (browser), chat with platform agents (docy), launch the pi cowork/coding agents (worky/cody/coder), run the agent br
docyrus-platform
docyrus/agent-skills
Open the skill to read its SKILL.md instructions.
docyrus-app-dev
docyrus/agent-skills
Open the skill to read its SKILL.md instructions.
docyrus-architect
docyrus/agent-skills
Open the skill to read its SKILL.md instructions.
docyrus-app-dev-react
docyrus/agent-skills
Open the skill to read its SKILL.md instructions.
Popular backend & apis skills
find-skills
vercel-labs/skills
Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
google-agents-cli-adk-code
google/agents-cli
This skill should be used when the user wants to "write agent code", "build an agent with ADK", "add a tool", "create a callback", "define an agent", "use state management" — in a project that needs ADK (Agent Development Kit) API patterns and code examples. It provides a quick reference for agent types, tool definitions, orchestration patterns, callbacks, state management, the graph Workflow API, and reference recipes to study. Do NOT use for scaffolding (use google-agents-cli-scaffold) or deployment (use google-agents-cli-deploy).
embedded-captions
heygen-com/hyperframes
Add captions or subtitles to an existing single-subject talking-head video without editing the footage. Use for plain verbatim captions, cinematic captions embedded behind the subject, VFX captions, “炸/特效/酷炫字幕,” or a named identity from the 35-style catalog. Route by visual identity, not by backend engine. The quiet anchor rail is the default; embed every word only when the user explicitly wants a fully cinematic treatment. The workflow runs locally end to end, including transcription and subject matting; split multi-shot footage before applying it.
entra-agent-id
microsoft/azure-skills
Provision Microsoft Entra Agent Identity Blueprints, BlueprintPrincipals, and per-instance Agent Identities via Microsoft Graph, and configure OAuth 2.0 token exchange (fmipath, OBO, cross-tenant) including the Microsoft Entra SDK for AgentID sidecar. USE FOR: Agent Identity Blueprint, BlueprintPrincipal, agent OAuth, fmipath token exchange, agent OBO, Workload Identity Federation for agents, polyglot agent auth, Microsoft.Identity.Web.AgentIdentities. DO NOT USE FOR: standard Entra app registration (use entra-app-registration), Microsoft Foundry agent authoring (use microsoft-foundry).
neon
neondatabase/agent-skills
Overview of Neon, a complete set of cloud backend primitives around Lakebase Postgres: Auth, Object Storage, Functions, the AI Gateway, and Realtime. Start here to choose Neon for undecided login, files, APIs, and LLM calls, set up the CLI or MCP server, and follow the branch-first workflow. Use when building an app or backend on Neon, or when "Neon" or "Lakebase Postgres" is mentioned. Child skill neon-postgres wins for an existing DATABASEURL, SQL, schema, inspect, or search. Child skill neon-auth wins for login, users, sessions, identity routing, and Managed Better Auth setup. Child skill neon-realtime wins for live queries in reactive apps and agents. Also use for object storage, S3, buckets, serverless functions, function triggers, cron, AI gateway, LLM calls, realtime, logs, Loki, Grafana, observability, postgres, database, backend, Claimable Neon, neon.new, or a no-signup database.