Leon Coding Agent
leon-ai/leon
Has Leon's agent investigate, change and verify code in a repository with its file, search and shell tools, staying inside the scope the owner authorized.
Authors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request.
$ npx skills add warpdotdev/warp --skill factory-files -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install warpdotdev/warp factory-files --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .claude/skills && cp -r skills-src/resources/bundled/skills/factory-files .claude/skills/factory-files && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .claude/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-filesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add warpdotdev/warp --skill factory-files -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install warpdotdev/warp factory-files --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .agents/skills && cp -r skills-src/resources/bundled/skills/factory-files .agents/skills/factory-files && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .agents/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add warpdotdev/warp --skill factory-files -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install warpdotdev/warp factory-files --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/resources/bundled/skills/factory-files .cursor/skills/factory-files && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .cursor/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/warpdotdev/warp.git --path resources/bundled/skills/factory-files--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add warpdotdev/warp --skill factory-files -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install warpdotdev/warp factory-files --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/resources/bundled/skills/factory-files .gemini/skills/factory-files && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .gemini/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install warpdotdev/warp factory-filesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add warpdotdev/warp --skill factory-files -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .github/skills && cp -r skills-src/resources/bundled/skills/factory-files .github/skills/factory-files && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .github/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add warpdotdev/warp --skill factory-files -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install warpdotdev/warp factory-files --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/warpdotdev/warp.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/resources/bundled/skills/factory-files .opencode/skills/factory-files && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "factory-files" agent skill from https://github.com/warpdotdev/warp/tree/master/resources/bundled/skills/factory-files into .opencode/skills/factory-files/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "factory-files", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
factory-filesAuthors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request.
A software factory can be defined by files in a repository, and this skill covers writing and editing them and validating them before you open a pull request. The format is owned by warp-server, which publishes the schema for each version and validates a tree with the same parser used when applying it. The skill deliberately carries no copy of the format, so when the server cannot be reached the honest answer is that the tree was not checked.
Every tree is rooted at the directory containing factory.yaml, found by searching rather than assuming it is the repository root, and symlinks are not followed. The layout has one factory.yaml, at least one agent directory with an agent.md where exactly one is marked MAIN, optional skills per agent, and automations. Resource names come from paths, so renaming an agent means moving its directory. A legacy flat automations form is still accepted, and the agent leaves existing flat files alone unless asked. Before editing, it reads the target files and factory.yaml and preserves fields and Markdown bodies it was not asked to change.
It does not apply to trees without a factory.yaml, to agent Markdown that belongs to other tools, or to operating a live factory, which belongs to a separate factory-mcp skill. A validate_factory_files.py script and reference notes on examples, scorers and validation are included.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit f571865. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
curlpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
WARP_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Warp Factory Files loads about 2.5k tokens when it runs, and up to ~6.5k if it reads all its reference files. Until then it costs about 127 tokens; SKILL.md has 1,356 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from warpdotdev/warp at commit f571865, republished under its AGPL-3.0 licence (© warpdotdev). 1,356 words, ~2,519 tokens.
.claude/skills/factory-files/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.A software factory can be defined by files in a repository. This skill covers authoring and editing those files, and validating them before you open a pull request.
warp-server owns the format. It publishes the schema for each version it supports and validates a tree with the same parser the apply path uses. This skill carries no copy of the format: a copy ships inside a Warp release, goes stale against the server, and then reports confident, wrong diagnostics. When the server cannot be reached, the answer is that the tree was not checked.
Use this skill for repository files. It is not the skill for operating a live
factory: use factory-mcp to send work to a factory, inspect task status, or
pull a task down locally. Playbooks under a factory's own skills/ directories
tell that factory's agents how to do their job; editing one is a prompt change,
not a schema change, so this skill's rules do not apply to their contents.
Every Factory tree is rooted at the directory containing factory.yaml. All
paths below are relative to that root. A repository may register a
subdirectory as the root, so find factory.yaml rather than assuming the
repository root. Do not follow symlinks while looking: the server parses the
repository tree, where a symlink is stored as its target path rather than its
target's content.
If there is no factory.yaml, this is not a Factory tree and nothing here
applies. agents/<name>/agent.md and similar paths are also used by other
agent tooling; stop and say so rather than imposing this schema on them.
factory.yaml required, exactly one
agents/<name>/agent.md at least one; exactly one must be MAIN
agents/<name>/skills/** skills only that agent can use
automations/<name>/automation.md optional
runners/<name>.yaml optional
scorers/<name>/scorer.md optional; Markdown body is the rubric
benchmarks/<name>/suite.yaml optional; benchmark suite manifest
benchmarks/<name>/tasks/<name>.yaml optional; benchmark suite task
webhooks/<name>.yaml optional; custom webhook sources
skills/** skills every agent in the factory can useResource names come from the path, never from a field inside the file. Renaming an agent means moving its directory.
automations/<name>.md is a legacy flat form the parser still accepts. Create
the directory form; when editing an existing flat file, leave it where it is
unless the user asks you to normalize the tree.
factory.yaml, so you can see
what is inherited and what is overridden.--- fence is its prompt; a
Scorer's body is its rubric. Never fold either into frontmatter.Read the tree's schemaVersion from factory.yaml; a tree that omits it is
v1alpha1. Then fetch the schema for that version:
curl -s https://app.warp.dev/api/v1/factory-files/schemas
curl -s https://app.warp.dev/api/v1/factory-files/schemas/<schemaVersion>The registry lists the versions the server supports. The version endpoint
returns every document describing one version, keyed by file name:
factory.schema.json for factory.yaml, agent.schema.json,
automation.schema.json, runner.schema.json, scorer.schema.json and
benchmark_suite.schema.json, benchmark_suite_task.schema.json, and
webhook.schema.json for the corresponding resources, and
common.schema.json for the definitions they share. Both endpoints are
unauthenticated. They are exact for the version they describe: an unknown
field is an error, and each enumerated value is one the server accepts today.
If the server does not publish the declared version, stop. Do not measure the
tree against a version it does not claim to be, and never lower
schemaVersion to make a check pass.
Read references/examples.md for worked examples of each resource, and
references/scorers.md before writing or changing a Scorer. The field-by-field
catalogue is not duplicated here any more; the fetched schema carries it, with
a description on each field.
Run the bundled validator with Python 3.8 or newer, using the host's command
(python3, python, or py -3). Quote both paths because an app-bundle path
can contain spaces.
python3 "{{skill_dir}}/scripts/validate_factory_files.py" "<factory-root>"It selects the tree's resource files and submits them to the server, which runs
the real parser. Add --json for machine-readable output and --server-root <url>, or WARP_SERVER_ROOT (or WARP_SERVER_ROOT_URL, the name an Oz
sandbox exports), to point at a local, staging, or self-hosted server. No
credential is required; WARP_API_KEY is forwarded when the environment
already carries one, as an agent sandbox does, and dropped for a single retry
if the server answers it with 401 or 403.
The exit code distinguishes three outcomes, and so must you:
0 the server checked the tree and found no problem.1 the server checked the tree and reported diagnostics. Fix every one and
re-run until it is clean.2 the tree was not checked. This is not a pass and not a failure; it
says nothing about the files at all.On exit 2, say plainly that validation did not run and why. Do not describe
the files as valid, correct, or ready, and do not substitute your own reading
of the schema for a verdict. If you cannot reach a server and the change
matters, say so and let the user decide.
On exit 0, repeat the sentence the validator prints rather than paraphrasing
it into something stronger. A pass means the parser and the state-independent
checks agreed; it does not mean the tree will apply.
Validation resolves no server state. Model IDs, environment IDs, secret names, runner names, Scorer model IDs, MCP server IDs, integration availability, and the values of Linear and Slack name aliases are all checked when the plan is applied. The response lists what it did not check, including any deferred name aliases; report that distinction rather than claiming a tree is fully verified.
If no Python 3 interpreter is available, do not install one or claim the tree was validated without the user's approval. Check the changed document against the fetched schema by hand and report that automated validation was unavailable.
When the Factory is already registered, a server plan remains the strongest
available check. See references/validation.md for diagnostic codes and how to
read them.
agentType: MAIN (or FOREMAN, its canonical
spelling). Zero or two is an error.model and harness are mutually exclusive everywhere. model: <id> is
shorthand for the Oz harness.agentDefaults must declare one of them; agents and automations may declare
neither and inherit.secrets or mcpServers at agent or automation level replaces the
inherited value; it does not merge.provider
and event.schedule.cron_fired trigger needs either an inline schedule.cron or a
non-empty filter.schedule_ids, and never both.platform.linux.dockerImage. A runner with no
platform section defaults to Linux and will fail for that reason.(provider, event) pair. Some fields have
a friendlier authoring spelling that the server rewrites for you: GitHub
baseBranches and prNumbers, Linear teams, projects, states and
issues, and Slack channels, users and itemUsers. Each stands in for
its canonical key, and declaring both is an error. The Linear and Slack ones
name objects the server looks up at apply time, so they take a plain list of
names rather than an in/not_in matcher.secretName is required in every
authMode and names an existing managed secret; the server does not generate
a secret for a file-declared source, because nothing could then read it back
to configure the sender.signatureScheme is required when authMode: signature and rejected
otherwise.authMode and signatureScheme cannot be changed on an existing source.
Changing either means deleting the file and adding a new one under a
different name.filter.webhook_ids takes source UIDs the server
assigned, not the file names declared here.It is tempting to bundle the schema, or to reimplement a few checks here so authoring works offline. Both have been tried and removed. A copy inside a Warp release is routinely older than the server it is used against, and a stale copy does not fail quietly: it reports a valid field as unknown, and an agent trying to get to a clean run deletes working configuration to satisfy it. That has already happened once, to Linear and Slack trigger aliases the server accepts.
Reporting that a tree was not checked costs a little. Reporting the wrong answer costs correct configuration. Fetch the format when you need it; say nothing when you cannot.
© warpdotdev, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (scripts, references) in resources/bundled/skills/factory-files of warpdotdev/warp.
Open the folder on GitHubat commit f571865
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in warpdotdev/warp, which our catalogue first saw on October 7, 2026.
Warp Factory Files next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Warp Factory Files this skillwarpdotdev/warp | 65k | 1 repos | ~2.5k | Automated safety check: Pass | AGPL-3.0 | |
| Leon Coding Agentleon-ai/leon | 18k | — | ~1.1k | Automated safety check: Pass | MIT | |
| Mariadb Operator PR Reviewmariadb-operator/mariadb-operator | 1k | — | ~3.3k | Automated safety check: Pass | Apache-2.0 | |
| Rememberantonio-orionus/Arroxy | 389 | — | ~571 | Automated safety check: Pass | MIT | |
| Code Reviewimbenrabi/Financial-Modeling-Prep-MCP-Server | 150 | — | ~2.6k | Automated safety check: Pass | Apache-2.0 | |
| Ss Cpp ModernSerial-Studio/Serial-Studio | 7.2k | — | ~1.6k | Automated safety check: Pass | Custom licence |
leon-ai/leon
Has Leon's agent investigate, change and verify code in a repository with its file, search and shell tools, staying inside the scope the owner authorized.
mariadb-operator/mariadb-operator
Perform a structured maintainer-style PR review for the mariadb-operator repository.
antonio-orionus/Arroxy
Persists a durable Arroxy lesson — a gotcha, user preference, workflow rule, or design decision — to the right tracked file (project memory, AGENTS.md, CONTEXT.md, dev-docs, or an ADR) so any coding…
imbenrabi/Financial-Modeling-Prep-MCP-Server
Review a PR or working diff against this repo's intent layer (the AGENTS.md hierarchy), toolception pitfalls, and core invariants.
Serial-Studio/Serial-Studio
Modern C++20 authoring guidance for Serial Studio (Qt 6.11, C++20): concepts, ranges, move/RAII, std smart pointers, constexpr, lock-free SPSC atomics.
eslint-config/airbnb-extended
Fix the "<Plugin Updated with <rule" build error from script/checkUpdates.ts by adding a new or deprecated plugin rule to the right rules/ file.
warpdotdev/warp
Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.
warpdotdev/warp
Required groundwork before any use_figma call: the rules and reference files for running JavaScript in a Figma file through the Plugin API without common failures.
warpdotdev/warp
Turns a Figma frame or component into production code that matches the design, using the Figma MCP server and the project's own design system.
warpdotdev/warp
Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.
warpdotdev/warp
Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.
warpdotdev/warp
Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.
Categories
Authors and edits file-based Warp software factory definitions rooted at factory.yaml, covering agents, automations, scorers and webhooks, and validates them before a pull request. A software factory can be defined by files in a repository, and this skill covers writing and editing them and validating them before you open a pull request. The format is owned by warp-server, which publishes the schema for each version and validates a tree with the same parser used when applying it.
Warp Factory Files fits situations like: creating or editing a factory.yaml in a repository; adding an agent, automation, scorer, benchmark, runner or webhook file; fixing diagnostics reported on factory files; validating factory files before opening a pull request.
Run `npx skills add warpdotdev/warp --skill factory-files -a claude-code`. Or copy the skill folder (resources/bundled/skills/factory-files in warpdotdev/warp) into .claude/skills/factory-files in your project. Claude Code loads it when a task matches its description.
Run `npx skills add warpdotdev/warp --skill factory-files -a codex`. Or copy the skill folder (resources/bundled/skills/factory-files in warpdotdev/warp) into .agents/skills/factory-files in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add warpdotdev/warp --skill factory-files -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/factory-files, .gemini/skills/factory-files, .github/skills/factory-files and .opencode/skills/factory-files in your project.
Going by SKILL.md and its folder, Warp Factory Files needs Python for the scripts in its folder, the command-line tools its instructions call (curl and python3) and credentials named WARP_API_KEY. Our summary lists: A repository tree with a factory.yaml; Access to warp-server for validation; Python, for the validation script.
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Warp Factory Files is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.5k tokens (SKILL.md is roughly 10k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3.9k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Warp Factory Files: Leon Coding Agent (leon-ai/leon, 18k stars), Mariadb Operator PR Review (mariadb-operator/mariadb-operator, 1k stars), Remember (antonio-orionus/Arroxy, 389 stars) and Code Review (imbenrabi/Financial-Modeling-Prep-MCP-Server, 150 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
warpdotdev (a GitHub organization) maintains it in warpdotdev/warp, which has 65,380 GitHub stars. The repository holds 46 skills in this directory. The repository was last updated on October 7, 2026.
Source: warpdotdev/warp on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.