Stats
Actions
Tags
From verona
Scaffold a new Verona Connector implementation under src/connectors/<id>/ with the contract enforced. Use when the user wants to add support for a new external system (Discord, Telegram, email, GitHub webhooks, etc.).
How this skill is triggered — by the user, by Claude, or both
Slash command
/verona:new-connectorThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Add a new Connector to Verona's source tree.
Add a new Connector to Verona's source tree.
discord, telegram, email).inbound, outbound, or both.state/secrets/_connectors/<id>/)?knowledge/architecture/connector-contract.md and src/connectors/connector.ts. The new connector MUST satisfy that contract.src/connectors/<id>/index.ts implementing the Connector interface.
ctx.deliver(event) with an InboundEvent (assign a fresh ULID runId).send(msg); emit one connector_send audit record via ctx.audit() per call (with the runId from msg.runId).ConnectorSendError from src/util/errors.ts for outbound transport failures.src/config/schema.ts so agent.toml references can be validated.knowledge/architecture/connector-contract.md ("Don't re-do" any rejected approaches).Daemon.bootstrapConnectors() (in src/core/daemon.ts) — load tokens from secrets, build the connector, start it.tests/connectors/<id>/ mirroring the structure of tests/connectors/slack.test.ts — use injected factoryMock-style dependencies, never real network.state/secrets/_connectors/<id>/ and add to verona connectors add (in src/cli/commands/connectors.ts).Mirror their shape — don't invent new patterns:
src/connectors/slack/index.tssrc/connectors/webhook/index.tssrc/connectors/web-fetch/index.tsstate/secrets/ and read tokens from process.env.runId inside send() — the daemon supplies it on the OutboundMessage.Provides CDSS development patterns for drug interaction checking, dose validation, clinical scoring (NEWS2, qSOFA), and alert classification integrated into EMR workflows.
npx claudepluginhub blake-simpson/verona --plugin verona