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/*.jsonspec is provided as reference only - Repo layout —
packages/toolkits/src/index.tsregistration,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:
| Auth | Copy from |
|---|---|
| OAuth2 | google-docs/, notion/, linear/ |
| api_key | cloudflare/ |
| bearer_token | groww/ |
| service_account | aws/, gcp/, grafana/ |
| service_env | web-search/ |
| none | mathematics/ |
- Checklist — create
<id>/, writemanifest.ts(defineToolkit),icon.ts(SVG base64),tools/*.ts(one AI SDK tool per file),tools/index.ts(name, description, tool, requiredAuth, scope, keywords), register insrc/index.ts, thennpm run validate && npm run build - Naming rules (enforced by
validate.ts) — toolkitidkebab-case, import var camelCase, toolname<Action>PascalCase, files kebab-case - Tool file pattern — Vercel AI SDK
tool()+ Zod + safe error returns (never throw fromexecute, include auth field matchingmanifest.auth.tokenField, declareread|write|deletescope, descriptive help text, keywords, minimal scope) - manifest.ts pattern —
defineToolkitwithid,displayName,category,icon,auth,allowedHosts,toolsviadefineTool, plus auth-type reference (oauth2,bearer_token,api_key,basic_auth,service_account,service_env,none) - tools/index.ts pattern — export
<id>Toolsarray withname,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,requiredAuthmismatches, 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
@rnsk/toolkits— registry package, manifests, and custom toolkit helpers- Toolkits — connector catalog
- Agent skills — AI SDK and MCP builder skills