agentsclimarketplace

Write integration

Skill tale-project/tale/.agents/skills/write-integration

The Orchestrator for AI Agents — Connect OpenClaw, Hermes Agent, Claude Code, Codex, Cursor, Gemini CLI, OpenCode, Pi, and Qwen Code. Pool their knowledge, delegate tasks, and build your swarm of agents.

Install
npx -y skills add tale-project/tale --skill write-integration

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 17 stars17 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Use this skill whenever you create or update an integration in a Tale organization — a connector definition for a REST API, SQL database, or IMAP/SMTP mailbox. Triggers include: "connect X", "add an operation to an integration", "set up OAuth / an API key for …", or a workflow or automation that needs an external system. Never author a connector without it — and never create one before listing the existing integrations; if one already reaches the system, add the missing operation to it instead. Workflows call integrations from action steps (write-workflow); automations declare them in requires.integrations (write-automation).

SKILL.md

3.8 KB, 773 tokens by cl100k_base, as published. Nobody here has run it

write-integration

An integration is a bundle directory integrations/<slug>/ whose config.json declares the connector. The slug is the directory name — there is no slug field. Credentials are NEVER in the file: they live in the platform's credential store; the file only names its authMethod and secretBindings.

Reuse before you create — tick every box

  • List the existing integrations first.
  • One already reaches the target system → use it; add the missing operation to it if needed.
  • Nothing reaches it → only then author a new connector.

Two connectors to the same system with different operation sets is the defect this box exists to prevent.

Required fields

  • title (1–200 chars).
  • authMethodapi_key | bearer_token | basic_auth | oauth2 (list alternates in supportedAuthMethods; OAuth needs oauth2Config with authorizationUrl, tokenUrl, optional scopes).

The fields that matter

  • typerest_api | sql | imap_smtp and description (≤2000), version (integer), labels (≤8 literal display chips like ["Developer"], shown on the catalog card — the same vocabulary automation manifests and skill frontmatter use).
  • operations — the callable surface, one entry per operation: name (required), title, description, operationType (read | write), requiresApproval (route the call through an approval card), requiredScopes, parametersSchema (a JSON-Schema object for the params).
  • connectionConfigdomain, apiVersion, apiEndpoint, timeout, rateLimit, plus any connector-specific keys.
  • allowedHosts — restrict which hosts the connector may call.
  • SQL connectors: sqlConnectionConfig (engine mssql | postgres | mysql, readOnly, options, security caps like maxResultRows) and sqlOperations — each with a parameterized query plus parametersSchema; never splice user input into SQL text.
  • capabilitiescanSync, canPush, canWebhook, syncFrequency.
  • bundlesagents / workflows auto-installed when the credential connects and cascade-disabled on disconnect.
  • setupGuide — ≤5000 chars of markdown shown in the integration config UI (never sent to the model).

Minimal valid example

{
  "title": "Status Page",
  "type": "rest_api",
  "authMethod": "api_key",
  "connectionConfig": { "apiEndpoint": "https://api.example.com/v1" },
  "operations": [
    {
      "name": "get_status",
      "operationType": "read",
      "description": "Fetch the current system status"
    }
  ]
}

Validation

config.json must parse against the shared integration schema — a failing field is rejected with its path and message. Mark every mutating operation operationType: "write" (and usually requiresApproval: true) so it routes through approval; a write mislabelled as read bypasses the approval card.

Siblings: write-workflow (action steps that call operations), write-agent (integrationBindings), write-automation (shipping the connector definition inside a bundle).

Gives 0 of the 12 instructions most docs writing skills give in 773 tokens

Counted across 1,637 of the 3,044 authors here whose files we hold, read 2026-08-06

  • announce the skill at startin 54 of 1637, across 21 files
  • convert legacy doc files before editingin 45 of 1637, across 7 files
  • predict questions readers might askin 42 of 1637, across 3 files
  • Generate clarifying questions for initial contextin 42 of 1637, across 3 files
  • Create document scaffold with placeholder textin 42 of 1637, across 3 files
  • Brainstorm content options for each sectionin 42 of 1637, across 3 files
  • Test document with fresh context-less instancein 42 of 1637, across 3 files
  • ask interview questions one at a timein 42 of 1637, across 26 files
  • include exact file paths in every taskin 42 of 1637, across 15 files
  • Apply surgical edits during refinementin 41 of 1637, across 2 files
  • Offer structured workflow or freeformin 40 of 1637, across 1 file
  • Ask for document meta-contextin 40 of 1637, across 1 file

Said here and by no other author read

  • list existing integrations before creating a new connector
  • add missing operations to existing integrations where possible
  • omit credentials from the connector definition file
  • name the directory using the integration slug
  • set the operation type for every operation
  • route mutating operations through an approval card

Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.