CtrlK
BlogDocsLog inGet started
Tessl Logo

create-skill

How to create new skills for an agent-native app. Use when adding a new skill, documenting a pattern the agent should follow, or creating reusable guidance for the agent.

62

Quality

75%

Does it follow best practices?

Run evals on this skill

Adds up to 20 points to the overall score

View guide

SecuritybySnyk

Passed

No findings from the security scan

Fix and improve this skill with Tessl

tessl review fix ./.agents/skills/create-skill/SKILL.md
SKILL.md
Quality
Evals
Security

Create a Skill

When to Use

Create a new skill when:

  • There's a pattern the agent should follow repeatedly.
  • A multi-step workflow needs reliable, step-by-step guidance.
  • You want to scaffold files from a template.

Don't create a skill when:

  • The guidance already exists in another skill — extend it instead.
  • You're documenting something the agent already knows (e.g., how to write TypeScript).
  • It's a one-off — put it in AGENTS.md (for everyone) or memory/MEMORY.md (personal, per-user). See capture-learnings.

Interview

Before writing the skill, answer these:

  1. What should this skill enable? — The core purpose in one sentence.
  2. Which of the four areas does it serve? — UI, actions, skills/instructions, or application state (see the adding-a-feature skill). Most skills are about how to touch one or more of these correctly.
  3. When should it trigger? — Describe the situations in natural language.
  4. Does it involve context awareness? — Does the agent need to know what the user is looking at? If so, reference the navigation application-state key and the view-screen action pattern. See the context-awareness skill.
  5. What type of skill? — Pattern, Workflow, or Generator (see below).
  6. Does it need supporting files? — References (read-only context) or none. Keep it minimal; push depth into references/.

Skill Types and Templates

Pattern (architectural rule)

For documenting how things should be done:

---
name: my-pattern
description: >-
  [Under 40 words. What it covers AND when it should trigger.]
---

# [Pattern Name]

## Rule

[One sentence: what must be true]

## Why

[Why this rule exists]

## How

[How to follow it, with code examples]

## Don't

[Common violations]

## Related Skills

[Which skills compose with this one]

Workflow (step-by-step)

For multi-step implementation tasks:

---
name: my-workflow
description: >-
  [Under 40 words. What it covers AND when it should trigger.]
---

# [Workflow Name]

## Prerequisites

[What must be in place first]

## Steps

[Numbered steps with code examples]

## Verification

[How to confirm it worked]

## Troubleshooting

[Common issues and fixes]

## Related Skills

Generator (scaffolding)

For creating files from templates:

---
name: my-generator
description: >-
  [Under 40 words. What it covers AND when it should trigger.]
---

# [Generator Name]

## Usage

[How to invoke — what args/inputs are needed]

## What Gets Created

[List of files and their purpose]

## Template

[The template content with placeholders]

## After Generation

[What to do next — wire up sync, add routes, register the action, etc.]

## Related Skills

Naming Conventions

  • Hyphen-case only: [a-z0-9-], max 64 characters.
  • Pattern skills: descriptive names (storing-data, delegate-to-agent).
  • Workflow/generator skills: verb-noun (create-skill, capture-learnings).
  • The directory name must match the name in frontmatter.

Frontmatter Fields

FieldRequiredValue
nameyesHyphen-case, matches the directory name
descriptionyesWhat the skill covers AND when it triggers
scopenoboth (default) | runtime | dev

For how to word a description and which scope a skill should get, follow writing-agent-instructions — it owns those rules.

Tips

  • Keep SKILL.md lean (under ~500 lines) — move detailed content to references/ files.
  • Use standard markdown headings — no XML tags or custom formats.

Anti-Patterns

  • Inline LLM calls — skills must not call LLMs directly. All AI work goes through the agent chat (see delegate-to-agent).
  • Introducing databases — data lives in SQL via Drizzle (see storing-data).
  • Ignoring sync — if a skill creates data, mention wiring useDbSync / useActionQuery so the UI updates (see real-time-sync).
  • Pure documentation — skills should guide action, not just explain concepts.

File Structure

.agents/skills/my-skill/
├── SKILL.md              # Main skill (required)
└── references/           # Optional supporting context
    └── detailed-guide.md

Related Skills

  • adding-a-feature — The four-area model every skill ultimately serves.
  • writing-agent-instructions — How to write AGENTS.md and skills well for apps and templates you ship to others.
  • capture-learnings — When a learning graduates to reusable guidance, create a skill; one-offs go to AGENTS.md or memory/MEMORY.md.
  • self-modifying-code — The agent can create new skills (Tier 2 modification).
Repository
BuilderIO/agent-native
Last updated
First committed

Is this your skill?

If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.