- Behave like your team – follow your architecture, testing, security, and rollout norms by default.
- Be consistent across sessions – run the same playbook every time you ask for “frontend change” or “new service integration”.
- Scale safely – let more people use automation without needing to be experts in the codebase or infrastructure.
What is a skill?
At the file-system level, a skill is a directory (e.g..factory/skills/frontend-ui-integration/) that contains:
- A primary spec like
SKILL.mdorskill.mdxwith frontmatter + markdown instructions - Optional supporting files (types, schemas, checklists) that the Droid can read when the skill is active
- What problem it solves – e.g., “add a typed React surface for an existing API” or “wire a service into our event bus”.
- What inputs it expects – feature description, services, APIs, time ranges, risk level, etc.
- What success looks like – required artifacts, tests, verification commands, and safety checks.
Skill file format
Skills are defined in Markdown with YAML frontmatter. A small, focused skill can be just a shortSKILL.md:
allowed-tools in future iterations; for now, name and description are the key fields that help Droids discover and use your skill.
Where skills live
Skills are discovered from a small set of well-known locations:| Scope | Location | Purpose |
|---|---|---|
| Workspace | <repo>/.factory/skills/ | Project skills shared with teammates; checked into git. |
| Personal | ~/.factory/skills/ | Private skills that follow you across projects on your machine. |
- Workspace:
<repo>/.factory/skills/<skill-name>/SKILL.md - Personal:
~/.factory/skills/<skill-name>/SKILL.md
-
Keep a single, shared skills folder at the root:
-
Or add per-project
.factoryfolders so skills live alongside each subproject:
Quickstart
1
Create a skill folder
Under your repo, create a directory in
.factory/skills/, for example
.factory/skills/frontend-ui-integration/.2
Add SKILL.md or skill.mdx
Inside the folder, create
SKILL.md or skill.mdx with YAML frontmatter
(name, description) and markdown instructions that define the
capability, inputs, and success criteria.3
Add supporting files (optional)
Co-locate any types, schemas, or checklists the Droid should use when the
skill is active (for example
types.ts, schemas/, or
rollout-checklist.md).4
Restart and use
Restart
droid or your integration so it rescans skills, then describe
your task normally. The Droid will automatically invoke matching skills
when they apply.How skills differ from other configuration
Skills sit alongside other ways of shaping Droid behavior:- Custom droids – define which model and tools to use and at what autonomy level; they are full agent configurations.
- Custom slash commands – are user-invoked macros you call explicitly (e.g.,
/review-pr); they don’t automatically trigger based on the task. - MCP servers – expose external systems (APIs, databases, SaaS tools) as tools; they are about connecting resources, not encoding your workflow.
- Package how work should be done (your engineering playbook) as reusable capabilities.
- Are discoverable and composable – the Droid can chain multiple skills inside a plan.
- Can sit on top of tools, custom droids, and MCP servers to orchestrate them safely.
- Use MCP to expose your internal deployment API.
- Use a custom droid to define which tools/models are allowed in CI.
- Use a skill to encode “how to safely roll out a canary deployment” using that API and droid configuration.
Why skills matter in enterprise codebases
Skills are especially valuable in enterprise environments where you need to:- Standardize how Droids do frontend implementation, service integrations, data querying, and internal tools.
- Encode team conventions, safety rules, and SLAs once, then reuse them across projects.
- Make automation discoverable, auditable, and shareable via git, not just “whatever happened in one chat”.
Best practices
Keep each skill narrow and outcome-focused
Keep each skill narrow and outcome-focused
Design skills around a single responsibility (e.g., “implement a typed
React UI for an existing endpoint”), not “build the whole feature”.
Define a crisp success criterion: what artifacts should exist when the
skill finishes (files changed, tests added, docs updated, approvals
gathered). Prefer several small skills composed by a Droid over one giant
“do everything” skill.
Make inputs explicit and structured
Make inputs explicit and structured
Document required inputs: repo path, services involved, APIs, schemas,
feature flag names, etc. Use structured fields (JSON snippets, bullet
lists, tables) instead of long prose when describing APIs or data models.
For security-sensitive workflows, include explicit “never do”
constraints and escalation conditions.
Encode team conventions and guardrails
Encode team conventions and guardrails
Bake in your testing, observability, and rollout requirements so the
skill always follows them. Reference your existing AGENTS.md, runbooks,
and design docs instead of inlining everything. Require proof
artifacts: tests, screenshots, log queries, or links to dashboards
depending on the domain.
Design for enterprise constraints
Design for enterprise constraints
Assume large monorepos, multiple services, and layered approvals. Be
explicit about which directories Droids may touch, which
languages/frameworks are in-bounds, and which are not. Include guidance for
cross-team dependencies – when to stub, when to coordinate with
another team, and when to stop and ask.
Make skills composable
Make skills composable
Prefer idempotent skills: safe to rerun on the same branch/PR. Design
skills to produce machine-parseable output where possible (for example,
a short summary block that other skills can consume). Keep skills
stateless beyond the current branch: no hidden assumptions about prior
runs.
Operate with verification and safety
Operate with verification and safety
Always include a “Verification” section that lists commands Droids
must run before completing the skill. Call out fallbacks when
verification fails (rollback steps, feature flags, or canary paths). For
production-adjacent skills, require that Droids open PRs but never
merge without human review.
Cookbook
The cookbook provides opinionated skill templates aimed at common enterprise software workflows. We focus on four families of skills:- Frontend implementation skills – building UI surfaces that integrate with existing APIs
- Integration skills for complex codebases – extending or wiring together services in large monorepos
- Internal data querying skills – safe, auditable access to internal analytics or data services
- Internal tools skills – building small but robust internal apps that improve developer and operator workflows
cli/configuration/skills/frontend-ui-integration– Frontend skill for implementing a typed UI workflow against an existing backend APIcli/configuration/skills/service-integration– Skill for extending an existing service and wiring it into a complex monorepocli/configuration/skills/data-querying– Skill for safely querying internal data services and producing shareable artifactscli/configuration/skills/internal-tools– Skill for building or extending internal tools (admin panels, support consoles, engineering utilities)
Frontend UI integration
Implement typed, tested frontend flows against existing backend APIs using
your design system, routing, and testing conventions.
Service integration in complex codebases
Extend or wire backend services in a shared monorepo while respecting
ownership boundaries, observability, and rollout requirements.
Internal data querying
Safely query internal analytics and data services, producing reproducible
queries and shareable analysis artifacts.
Internal tools
Build or extend internal-facing tools (admin panels, consoles, utilities)
with strong RBAC, audit logging, and operational safeguards.
SKILL.mdorskill.mdx– the main skill specificationreferences.md– links and pointers to types, APIs, and modules that already exist in your codebaseschemas/– JSON/YAML schemas or OpenAPI snippets referenced by the skill (not the source-of-truth service code)checklists.md– reusable validation or rollout checklists
