Rework the skills.sh marketing mirror so it stays useful and hands-off.
- Source the full standalone guides from packages/trigger-sdk/skills
instead of the thin pointer skills in packages/cli-v3/skills (those only
make sense next to an installed SDK, so they were near-useless on
skills.sh). trigger-getting-started stays sourced from cli-v3 (it runs
before the SDK is installed).
- Auto-publish every skill under a sourced directory; sync-map.json now
only carries renames used to preserve skills.sh install history
(trigger-setup/tasks/realtime keep their established names/counters).
- Drop trigger-config and trigger-agents (no upstream equivalent); add
trigger-authoring-chat-agent and trigger-chat-agent-advanced.
- Resolve the {{TRIGGER_SDK_VERSION}} placeholder from the SDK package.json.
- Auto-generate the README skill list from frontmatter.
- Sync monthly + workflow_dispatch + repository_dispatch into a single
standing PR; never pushes to main.
2.9 KiB
Agent skills — Trigger.dev
This repository is an automatic mirror. It exists so the Trigger.dev agent skills are discoverable and installable via skills.sh (npx skills add triggerdotdev/skills).
Source of truth
Skills are authored and maintained in the Trigger.dev monorepo — do not edit them here, any change is overwritten on the next sync:
The monorepo has two skill sets. We mirror the full standalone guides bundled in the SDK (packages/trigger-sdk/skills), not the thin pointer skills in packages/cli-v3/skills (those only make sense next to an installed SDK). The one exception is trigger-setup, sourced from packages/cli-v3/skills/trigger-getting-started — bootstrapping runs before the SDK exists, so it has no SDK-bundled version.
How the sync works
.github/workflows/sync-from-monorepo.yml runs monthly (plus workflow_dispatch, plus repository_dispatch for instant syncs from the monorepo). It:
- Clones the two monorepo skill dirs + the SDK
package.json. - Runs
scripts/mirror-skills.mjs, which readssync-map.json:sources[]— monorepo locations to mirror. A directory publishes everytrigger-*skill inside it (so a new skill added topackages/trigger-sdk/skillsupstream auto-publishes here — no edit needed); a path ending in a skill dir publishes just that one (used fortrigger-getting-started, which only exists CLI-side).renames{}— monorepo skill name → published name, used only to preserve the established skills.sh install history (renaming a skill resets its install counter). Applied as a global text substitution across every mirrored file, so the frontmattername:and all cross-skill references stay consistent.- The
{{TRIGGER_SDK_VERSION}}placeholder is resolved from the SDKpackage.json. - Any skill dir here that the mirror doesn't produce is removed. If a CLI-only skill appears upstream (no SDK-bundled full version, like
getting-started), the sync logs a warning so a human can decide whether to add it tosources.
- Runs
scripts/build-readme.mjsto regenerate the "Available skills" block inREADME.mdfrom each skill's frontmatter. - Force-pushes a single
sync/monorepo-skillsbranch and opens one PR — or updates the existing open one, so there is never more than one sync PR to merge.
Merging that PR is the only manual step. The org blocks direct pushes to main, so the workflow can only open a PR; it never writes to main.
Publishing / renaming
New skills under a sourced directory publish automatically. You only edit sync-map.json to:
- Preserve install history when a skill's monorepo name differs from an existing skills.sh name → add a
renamesentry (e.g."trigger-authoring-tasks": "trigger-tasks"). - Add a CLI-only skill the auto-mirror doesn't cover → add its path to
sources.