Agent skill

Warp Factory Files

by warpdotdev in warpdotdev/warp

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.

AGPL-3.0Auto-check passedDevelopment

Install Warp Factory Files

skills CLI
$ npx skills add warpdotdev/warp --skill factory-files -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install warpdotdev/warp factory-files --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ 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-src

Use ~/.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/

Facts

Skill name
factory-files
GitHub stars
65k
Used in
1 other repo
Token cost
~2.5k tokens
SKILL.md length
1,356 words
Files
5 (incl. scripts, references)
Skills in repo
46
Repo updated
First seen
Licence
AGPL-3.0

At a glance

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.

  • Works in 3 steps: Read the files you are about to change,… → Preserve fields and Markdown bodies you… → Prefer the smallest edit that satisfies…
  • Creating or editing a factory.yaml in a repository
  • SKILL.md covers Locate the Factory root, Before you edit, Author against the server's… and Validate before opening a pull…, plus 2 more sections
  • Runs Python scripts from its folder; calls curl and python3; needs WARP_API_KEY

What it does

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.

When your agent uses it

  • 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

Example prompts

  • “Add a new automation to our factory that runs the nightly benchmark, then validate the tree.”
  • “Fix the diagnostics on agents/triage/agent.md.”
  • “Create a scorer for the code-review agent and show me the validation result.”

Requirements

  • A repository tree with a factory.yaml
  • Access to warp-server for validation
  • Python, for the validation script

Workflow steps

3 steps, taken from the first numbered list in SKILL.md.

  1. Read the files you are about to change, plus factory.yaml, so you can see
  2. Preserve fields and Markdown bodies you were not asked to change. The body
  3. Prefer the smallest edit that satisfies the request.

What it can do on your machine

Read from SKILL.md and the folder at commit f571865. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • curl
    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • WARP_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

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.

Always · name and description, kept in context so the agent knows when to use it
~127
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.5k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from warpdotdev/warp at commit f571865, republished under its AGPL-3.0 licence (© warpdotdev). 1,356 words, ~2,519 tokens.

Download SKILL.mdSave it as .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.
name
factory-files
description
Create and edit file-based Warp software factory definitions, in a repository tree rooted at a factory.yaml. Use when authoring or changing that factory.yaml, Agent, Automation, Scorer, Benchmark, Runner, or Webhook files under that root, or its factory and agent skill trees, and when fixing Factory file diagnostics. Do not use for agent-definition Markdown that belongs to another tool, for a tree with no factory.yaml, or to operate a live factory or hand work to one through Factory MCP.

Factory Files

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.

Locate the Factory root

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 use

Resource 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.

Before you edit

  1. Read the files you are about to change, plus factory.yaml, so you can see what is inherited and what is overridden.
  2. Preserve fields and Markdown bodies you were not asked to change. The body after an Agent's or Automation's closing --- fence is its prompt; a Scorer's body is its rubric. Never fold either into frontmatter.
  3. Prefer the smallest edit that satisfies the request.

Author against the server's schema

Read the tree's schemaVersion from factory.yaml; a tree that omits it is v1alpha1. Then fetch the schema for that version:

bash
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.

Validate before opening a pull request

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.

bash
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.
Show full SKILL.md (627 more words)Show less
Never imply a check that did not happen

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.

Rules that are easy to get wrong

  • Exactly one agent declares 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.
  • Declaring secrets or mcpServers at agent or automation level replaces the inherited value; it does not merge.
  • An automation needs at least one trigger, and every trigger needs provider and event.
  • A schedule.cron_fired trigger needs either an inline schedule.cron or a non-empty filter.schedule_ids, and never both.
  • Linux runners require platform.linux.dockerImage. A runner with no platform section defaults to Linux and will fail for that reason.
  • Trigger filter keys depend on the (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.
  • A webhook never carries secret material. 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.
  • A webhook subscription's filter.webhook_ids takes source UIDs the server assigned, not the file names declared here.

Do not add a local copy of the format

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

Files

SKILL.md and 4 other files (scripts, references) in resources/bundled/skills/factory-files of warpdotdev/warp.

  • SKILL.md
  • references/examples.md
  • references/scorers.md
  • references/validation.md
  • scripts/validate_factory_files.py

Open the folder on GitHubat commit f571865

Used in 1 other repository

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.

Compare with similar skills

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.

Warp Factory Files compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Warp Factory Files this skillwarpdotdev/warp65k1 repos~2.5kAutomated safety check: PassAGPL-3.0
Leon Coding Agentleon-ai/leon18k—~1.1kAutomated safety check: PassMIT
Mariadb Operator PR Reviewmariadb-operator/mariadb-operator1k—~3.3kAutomated safety check: PassApache-2.0
Rememberantonio-orionus/Arroxy389—~571Automated safety check: PassMIT
Code Reviewimbenrabi/Financial-Modeling-Prep-MCP-Server150—~2.6kAutomated safety check: PassApache-2.0
Ss Cpp ModernSerial-Studio/Serial-Studio7.2k—~1.6kAutomated safety check: PassCustom licence

Similar skills

  • 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.

    18k GitHub stars~1.1k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Mariadb Operator PR Review

    mariadb-operator/mariadb-operator

    Perform a structured maintainer-style PR review for the mariadb-operator repository.

    1k GitHub stars~3.3k tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Remember

    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…

    389 GitHub stars~571 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Code Review

    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.

    150 GitHub stars~2.6k tokensUpdated 3 mo ago
    DevelopmentAuto-check passed
  • Ss Cpp Modern

    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.

    7.2k GitHub stars~1.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Add Plugin Rule

    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.

    129 GitHub stars~646 tokensUpdated today
    DevelopmentAuto-check passed

More from warpdotdev/warp

All 46 skills in this repo
  • Builds or updates a design system in Figma from a codebase in ordered phases: discovery, variables and tokens, components, theming and documentation, with checkpoints.

    65k GitHub starsUsed in 2 repos~4.4k tokens
    Auto-check passed
  • 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.

    65k GitHub starsUsed in 4 repos~4.4k tokens
    Auto-check passed
  • Figma Design to Code

    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.

    65k GitHub starsUsed in 4 repos~2.9k tokens
    Auto-check passed
  • 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.

    65k GitHub starsUsed in 1 repo~2.1k tokens
    Auto-check passed
  • Creates project-specific design system rules from your codebase so coding agents implement Figma designs with your components, naming and tokens.

    65k GitHub starsUsed in 3 repos~4.6k tokens
    Auto-check passed
  • Maps published Figma components to their code implementations with Code Connect, using the Figma MCP suggestion and mapping tools.

    65k GitHub starsUsed in 2 repos~4.2k tokens
    Auto-check passed

Questions about Warp Factory Files

What does Warp Factory Files do?

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.

When should I use Warp Factory Files?

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.

How do I install Warp Factory Files in Claude Code?

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.

How do I install Warp Factory Files in Codex?

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.

Can I use Warp Factory Files in Cursor, Gemini CLI or GitHub Copilot?

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.

What does Warp Factory Files need to run?

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.

Does Warp Factory Files access the network?

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.

Is Warp Factory Files safe to install?

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.

What licence does Warp Factory Files use?

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.

How many tokens does Warp Factory Files use?

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.

What are the alternatives to Warp Factory 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.

Who maintains Warp Factory Files?

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.