---
name: auldera-plugin
description: Draft a local Auldera plugin against an app-supplied SDK and prepare it for human review in Auldera.
metadata:
  authoring-revision: "2026-11-10.1"
---

# Auldera plugin authoring

[Download this skill](SKILL.md). [Skill directory](/skills).
Canonical URL: https://auldera.com/skills/auldera-plugin/SKILL.md

## Availability

Authoring guide revision 2026-11-10.1. Plugins are in development.
The merged Mac SDK at `bacdfb59` defines only `live.coach`; the app does not
run plugins yet. Production does not install an SDK, expose an SDK version,
or provide a registration command. This guide does not make those features
available. Summary, title, ask, live fold and preparation handlers are not
available in that SDK, even where a newer Core wire format defines them.

## Check compatibility before writing runnable code

Ask whether the person's app actually supplies an SDK. If it does, read its
README, type declarations and example, record the app version and any SDK
version it actually exposes, and check the declared capabilities and handlers.
The app-supplied SDK is the compatibility authority. Do not infer support from
this guide, Core schemas or a future method name. There is no SDK discovery
path or version field to probe in the current production app.

If an app-supplied SDK is absent, explain the limitation and stop at a synthetic
design proposal. Do not install a replacement SDK or claim a runnable plugin.
A developer with the merged SDK source can use the
[synthetic walkthrough](references/synthetic-walkthrough.md) to explore its
current shape; this is source-level validation, not installed-app acceptance.

## Author locally

Use the person's chosen working folder and preserve existing files. Do not
install this skill into a mandatory agent directory or change user `AGENTS.md`.
Use only capabilities and handlers the supplied SDK supports. Prefer a small,
local TypeScript or JavaScript entry with static imports and minimal dependencies.
Do not download or execute an installer, run package install scripts, or pipe a
network response into a shell as part of this skill.

Use synthetic input only. Do not request meeting content, credentials, tokens
or approval records. Private and Local-only meetings are unavailable to plugins.
A plugin cannot forge grants, enable itself or change the approval ledger.
Describe requested access and any external destinations plainly; do not imply
this authoring prompt authorizes them.

Validate the output against the actual SDK types and supplied synthetic fixtures.
For the current coach shape, return `{card: null}` or a plain-text card with a
1–60 character title, 1–280 character body (at most three line breaks), and
1–3 distinct references to input rows. Coach cards are best effort. Do not
promise automatic retries or replay an uncertain request.

## Return to Auldera

Hand back the draft entry, dependency list, compatibility evidence, synthetic
results and a plain-language account of its access and destinations. State what
was not tested. Do not invent a CLI, URL scheme or registration API.

When the app provides registration, bring the person back to Auldera to select
the source, register it, review the completed frozen artifact and explicitly
approve access and destinations. Registration is not approval or execution.
Changed code requires a new freeze and approval. A future freeze will accept
static imports only; URL imports, macros, native add-ons, WebAssembly, computed
imports, `require`, `createRequire`, `eval`, `new Function` and workers are refused.
Until that workflow ships, stop with the draft and explain that registration,
approval and execution remain unavailable. Never report the plugin as enabled.

## Copyable authoring prompt

My Auldera app version is {{AULDERA_APP_VERSION}}; SDK version: {{AULDERA_SDK_VERSION}}. Before writing plugin code, read https://auldera.com/skills/auldera-plugin/SKILL.md and my app-supplied SDK. If the SDK is unavailable or incompatible, stop and explain. Use synthetic examples only. Add the plugin to Auldera using its supported registration workflow for me to review; if registration is unavailable, return the draft and explain. Never approve or enable it, edit approval records, or ask for meeting content or credentials.

The Mac host substitutes the two version placeholders from actual app/SDK metadata.
Use `not installed` when no SDK is supplied and `unknown` when a supplied SDK has
no version marker; never infer a version from this guide. These placeholders are
context, not evidence of compatibility or registration availability.
