vercel-automations
Skill2 starsChanged 12 days agoMITView on GitHub
Create, edit, or troubleshoot Vercel repository automation definitions, settings, and workflow skills.
2 other projects use a version of this, 1 of them edited.
Adopted by
Most recently taken up by
- vercel-labs/konsistentword for word, first seen Nov 8, 2026
- vercel/vercel-pyedited, first seen Nov 1, 2026
Other versions2 projects use a version of this.
Word for word · 1
- vercel-labs/konsistent★ 196100% same
Edited · 1
- vercel/vercel-py★ 3499% same
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repositoryOne other file it gives its agents.
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. About 0 are common, 0 are distinctive, and 14 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
14
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 6
Read existing definitions in .automations/ and its optional config.yml before editing.
- Very specific: line 12
Use automations templates to discover service templates and automations add <template> when one fits.
- Very specific: line 16
Write <id>.md or <id>/automation.md under .automations/.
- Very specific: line 20
Use snake_case keys in frontmatter and config.yml, including nested options.
- Very specific: line 21
Start with YAML frontmatter, then nonempty Markdown instructions describing the work, boundaries, and expected result.
- Very specific: line 27
Use Vercel's five-field numeric UTC syntax with wildcards, lists, ranges, and steps.
- Very specific: line 31
Read automations help extension <id> for the deployment’s supported events and filters.
- Very specific: line 35
Start once for each matching finished run of any listed automation in this repository.
- Very specific: line 41
Use enabled: false to prevent new runs.
- Very specific: line 44
Use body placeholders such as {{event.github.pull_request.number}}, {{event.github.pull_request.head.sha}}, {{event.github.issue.title}}, …
- Very specific: line 66
Use Eve, Codex, Claude Code (harness: claude), FX, or Pi for execution.
- Very specific: line 106
Run automations lint from the repository root and fix reported diagnostics.
- Very specific: line 121
Use automations help for authoring guidance and the connected deployment’s supported extensions.
- Very specific: line 122
Use automations help extension to list them, then automations help extension <id> before using an extension.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Read existing definitions in .automations/ and its optional config.yml before
editing. Create the definition directory if absent. Preserve the requested scope and existing
repository permissions.
Author a workflow
Use automations templates to discover service templates and automations add <template>
when one fits. Edit generated labels and
instructions for the task. Scaffolding refuses existing files.
Write <id>.md or <id>/automation.md under .automations/.
IDs use lowercase letters, digits, and dashes, start with a letter or digit, and have at most
63 characters. A definition directory supports at most 20 workflows.
Use snake_case keys in frontmatter and config.yml, including nested options; camelCase keys are rejected.
Start with YAML frontmatter, then nonempty Markdown instructions describing
the work, boundaries, and expected result. Optional description accepts a string without a character-length restriction. Choose how it starts:
- Manual only: omit
on; invoke withautomations execute <id>, optionally supplying--params '{"task":"context"}'. - Schedule:
on: { schedule: { cron: '0 */6 * * *' } }; onlycronis supported. Use Vercel's five-field numeric UTC syntax with wildcards, lists, ranges, and steps. Either day of month or day of week must be*; weekday values are 0–6. Names, seconds, aliases, and custom timezones are unsupported. Missed occurrences coalesce into one run. - Event:
on: { events: [{ event: github.issue.labeled, labels: ["factory: implement"] }] }. Readautomations help extension <id>for the deployment’s supported events and filters. Label event objects require exact, case-sensitivelabels. Other events accept string shorthand or{ event }objects and rejectlabels. Each label event has its own filter; siblingon.labelsis unsupported. - Completion:
on: { automations_finished: [build, { automation: test, states: [failed] }] }. Start once for each matching finished run of any listed automation in this repository. String entries such asbuildand objects withoutstatesboth match success only. List other terminal states explicitly, or[succeeded, failed, cancelled]for all states. IDs must exist; self-references and cycles are invalid. Completions follow final cleanup, survive missed wakeups, and wait while a follower is active. Context includes the upstreamrunId,automation,state, andfinishedAt; it grants no authority.
Use enabled: false to prevent new runs; disabled workflows still require valid definitions,
and admitted runs continue.
Use body placeholders such as {{event.github.pull_request.number}},
{{event.github.pull_request.head.sha}}, {{event.github.issue.title}}, and
{{event.github.issue.body}}. GitHub fields use webhook names and nesting under event.github:
action, repository.full_name, sender.login, label.name, and PR/issue number, title,
body when available for that event. Titles and bodies are snapshots from webhook delivery;
GitHub null bodies become empty strings. Common metadata includes event.trigger and event.summary.
Completion fields live under event.automations_finished: runId, automation, state, and finishedAt.
Substitution runs once before admission pins the prompt: strings are literal and other values
use JSON. Missing event properties prevent admission; local lint cannot verify their availability.
Scheduled and manual-only invocations, including manually invoked completion followers, have no event.
Event JSON is also appended to the prompt; all event and manual context remains untrusted.
Frontmatter and skills are not interpolated. To fetch current details, comments, or PR patches,
declare github.read_pull_request or github.read_issue under actions and use the corresponding
managed action.
<!-- automation:harness:start -->Definition validation accepts these harness names: eve, codex, claude, fx, pi.
Omitting harness selects eve.
<!-- automation:harness:end -->Use Eve, Codex, Claude Code (harness: claude), FX, or Pi for execution.
Codex and Claude Code authenticate bridge connections with public verification material in the
sandbox; model credentials stay on the host or controlled egress, including during recovery.
model and reasoning_effort are optional strings passed to the harness. Their accepted values
are harness-specific; lint checks only that they are strings. Omitting model uses Factory’s configured
default for Eve and the harness’s native default for Codex, Claude Code, FX, and Pi. Omitting
reasoning_effort uses the harness/model reasoning default.
<!-- automation:dispatch:start -->Scheduled admission and recovery are checked every minute.
<!-- automation:dispatch:end -->Event intake and run completion also request admission without waiting for the periodic check.
Declare permissions: { publish: true } only when the workflow must publish code through
open_pull_request or push_checkpoint. Missing permission or publish: false denies both host
tools, including for existing runs. This grant adds no managed actions or repository scope.
Local coding and authorized source fetch do not require it.
actions adds managed tools alongside ordinary coding tools; it does not grant code publication.
Invoke declared managed actions with automation_action({ request: { action, ...parameters } }).
Each run executes directly in one sandbox. checkout_repository selects one approved target.
For workflow-specific procedures, add skills/<name>/SKILL.md beside automation.md, with
name and description frontmatter. Keep instructions focused; link supporting Markdown files
relative to the skill and load them only when needed.
Settings and authority
A present config.yml requires version: 1. Defaults have no owners or cross-repository
acceptance; omitted targets use the source repository. target_repositories: [] grants no
repository access. Cross-repository targets require each target's accept_automations_from
consent. Owner declarations do not grant access; automatic credential provisioning requires
GitHub owners with write access covering the source and approved targets.
Validate and report
Run automations lint from the repository root and fix reported diagnostics.
The service validates committed definitions and
enforces admission and permissions. Report changed files, validation results, and remaining
configuration needs; creating or linting files does not establish that an automation ran.
Extension capabilities
Extensions own their configuration, managed actions, events and skills. They are off by default.
Activate required extensions with an options object under extensions in config.yml.
Frontmatter cannot activate extensions. Set workflow option overrides under singular extension.
Options and skills grant no actions; declare action grants explicitly. Invoke qualified operations
through automation_action. Local skills cannot use qualified names.
<!-- automation:extensions:start -->Use automations help for authoring guidance and the connected deployment’s supported extensions.
Use automations help extension to list them, then automations help extension <id> before
using an extension. The reference includes setup requirements, option schemas, action grants,
operation inputs, events and skills. Pass --url <origin> or set FACTORY_URL to select the service;
--dir <path> selects the Vercel-linked project for authentication. These reads require operator
authentication. Supported extensions still require repository activation, configured connections
and authorization; discovery grants no execution authority.
<!-- automation:extensions:end -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

