Skills & agents

Custom skills

Author your own skills with a @alias prefix. Custom skills are scoped to your workspace, syncable to teammates, and run with the same engine as built-ins.

#When to author a custom skill

Built-ins cover the obvious workflows. You'll want a custom skill when you have a repeated task that built-ins don't quite cover — things like:

  • A brand-specific tone-of-voice review.
  • An internal launch checklist that depends on your team's process.
  • A migration script-generator for your house framework conventions.
  • A pre-merge review with your engineering principles baked in.

A custom skill is essentially a saved, named system prompt + a handful of metadata. Each runs through the same execution loop as a built-in.

#Authoring a skill

1

Open the skill editor

Go to /skills and click + New skill, or navigate directly to /skills/new.

2

Fill in the metadata

FieldTypeDescription
AliasstringUsed after @. Lowercase, hyphenated. Example: brand-voice.
TitlestringDisplay name shown in autocomplete and the Skills hub.
DescriptionstringOne-liner shown in autocomplete. Keep it under 80 chars.
Kindcritique | augmenterCritique returns markdown; augmenter modifies files.
System promptstringThe prompt the LLM runs against your message. This is where the skill's logic lives.
Sample argsstring?Optional. Shown in the autocomplete preview.
3

Write the system prompt

The system prompt is the actual instructions the LLM follows. For critique skills, write a role + format expectation. For augmenter skills, you must end with the strict JSON schema the engine expects.

Example: critique skill
You are a brand voice reviewer for Acme Corp.

Read the user's content and return a markdown report with three sections:
1. **What works** — voice elements that are on-brand
2. **What slips** — places the voice is off
3. **Concrete rewrites** — three rewritten lines

Voice: confident, plainspoken, never corporate. Words to avoid:
"synergy", "leverage", "solution".
4

Save and test

Click Save. The skill is written to your local store immediately and synced to the backend in the background. Open /chat and run @your-alias to try it.

#The save lifecycle

When you save a custom skill, two things happen:

  • Optimistic local save — written to localStorage via Zustand persist. Available immediately for use.
  • Background server sync — POSTed to /api/v1/custom-skills. The Skills hub shows a small sync indicator until it lands.

#Sharing with teammates

Custom skills are workspace-scoped. Anyone with access to your workspace can run any custom skill in it — but only the author can edit or delete. Use shared workspaces (rather than copying skills across personal workspaces) for team-wide standards.

#Custom augmenters

You can author augmenter-kind custom skills too. The system prompt must instruct the LLM to return strict JSON in the exact shape the engine expects:

Required JSON shape
{
  "files": [
    { "path": "src/components/Banner.tsx", "contents": "..." },
    { "path": "src/styles/banner.css",     "contents": "..." }
  ],
  "summary": "Added a banner component and styles."
}

The engine is tolerant of code-fence wrappers and surrounding prose — it extracts the first JSON object — but the keys and types must match. Files are written verbatim; partial patches aren't supported.

#Where to go next

PromptFloe docs · last updated Jun 2026Report a doc issue