Docs · static mirror — the interactive version loads with JavaScript.

Skills

Agent skill for adding or extending toolkits and tools in @rnsk/toolkits. Copy the command into your coding agent to scaffold connectors correctly.

Source: https://runstack.engineer/docs/commands-skills

Copy the skill command below into your coding agent (Cursor, Claude Code, Windsurf, or any custom agent) to teach it how to add or extend toolkits in @rnsk/toolkits.

Command

Use the skill in rnsk-toolkits/skills/add-rnsk-toolkit/SKILL.md to add or extend
toolkits and tools in @rnsk/toolkits (Runstack connector registry).

Point your agent at the skill file:

@rnsk-toolkits/skills/add-rnsk-toolkit/SKILL.md

Cursor

@rnsk-toolkits/skills/add-rnsk-toolkit/SKILL.md Add a new toolkit for <service>

Claude Code

Skills are auto-discovered — reference the skill path in your prompt:

Use the instructions in rnsk-toolkits/skills/add-rnsk-toolkit/SKILL.md to add tools for <service>

Custom agents

Load the skill content as system instructions:


const skill = readFileSync('rnsk-toolkits/skills/add-rnsk-toolkit/SKILL.md', 'utf-8');

What the skill covers

  • When to use — new toolkit vs. adding tools to an existing toolkit, or when a toolkit-todo-list/*.json spec is provided as reference only
  • Repo layout — packages/toolkits/src/index.ts registration, core/ (do not edit), toolkits/<id>/manifest.ts, icon.ts, tools/
  • Decision tree — new service / new auth → new toolkit directory; same service → add tool files + update tools/index.ts
  • New toolkit workflow — copy the nearest existing toolkit by auth type:
AuthCopy from
OAuth2google-docs/, notion/, linear/
api_keycloudflare/
bearer_tokengroww/
service_accountaws/, gcp/, grafana/
service_envweb-search/
nonemathematics/
  • Checklist — create <id>/, write manifest.ts (defineToolkit), icon.ts (SVG base64), tools/*.ts (one AI SDK tool per file), tools/index.ts (name, description, tool, requiredAuth, scope, keywords), register in src/index.ts, then npm run validate && npm run build
  • Naming rules (enforced by validate.ts) — toolkit id kebab-case, import var camelCase, tool name <Action> PascalCase, files kebab-case
  • Tool file pattern — Vercel AI SDK tool() + Zod + safe error returns (never throw from execute, include auth field matching manifest.auth.tokenField, declare read | write | delete scope, descriptive help text, keywords, minimal scope)
  • manifest.ts pattern — defineToolkit with id, displayName, category, icon, auth, allowedHosts, tools via defineTool, plus auth-type reference (oauth2, bearer_token, api_key, basic_auth, service_account, service_env, none)
  • tools/index.ts pattern — export <id>Tools array with name, description, tool, requiredAuth, scope, keywords
  • Keywords & search ranking — lowercase synonyms (~5 max), no name-token duplicates, singular + plural, domain synonyms; weights: exact name → name prefix → name token → keyword → toolkit id/display name → description token
  • Using toolkit-todo-list JSON — read name, description, input_parameters, scopes; map to real HTTP/SDK calls; normalize params to camelCase; do not commit JSON as runtime config
  • Verify — npm run validate (manifest rules + Zod schema presence) + npm run build (tsc + ESM dist check); fix duplicate names, requiredAuth mismatches, invalid categories, empty schemas, prefix mismatches, bad keywords
  • Local test — npm run sandbox (http://localhost:5173), scope sidebar to your toolkit → Tool runner → Chat

Full skill

The complete contributor guide lives in the rnsk-toolkits repo at skills/add-rnsk-toolkit/SKILL.md (v1.1.0, MIT). It also links to references/auth-patterns.md, references/templates.md, and CONTRIBUTING.md.

Related