> ## Documentation Index
> Fetch the complete documentation index at: https://veryfront.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Create a skill

> Use Veryfront Agent to create a reusable project skill and optional reference resource.

Use this guide when the Studio starter or user request asks Veryfront Agent to create a reusable skill.

Skills are best for repeatable instructions. Resources are best for read-only context the skill can load by name.

## Agent-facing flow

1. Load the Veryfront router skill: `load_skill({ "skillId": "veryfront" })`.
2. Treat this page as the guide for creating or editing a project skill.
3. If the request is broad, ask one short `form_input` with a required `brief` field, then continue from the submitted brief.
4. Create or update the smallest useful skill. Prefer the framework source shape when editing project files. Use the MCP tool call when Studio exposes skill creation tools instead.
5. If the skill needs stable reference material, add a focused resource instead of pasting long background text into the skill.
6. If the request does not name a domain, create a small skill for reviewing AI agent designs. Include a compact Mermaid example only as supporting output, not as the skill's main purpose.
7. Return the skill path or skill id, any resource path or resource id, and a short note on how to invoke it.

## Guardrails

* Do not load a removed `create-skill` sub-skill.
* Do not create UI files, app routes, or unrelated project code for a skill-only request.
* Do not invent tool names, resource ids, or project paths. Use the tools and conventions available in the current project.
* Keep one skill focused on one repeatable workflow.
* Keep resources read-only. Use a tool when the task needs to change state.
* Do not turn the Mermaid example into the main point unless the user asked for a diagram skill.
* Do not default to a diagram-only skill for the Studio starter. Default to a generic AI-agent-building helper.
* Do not finish with inline-only guidance when file or skill creation tools are available.

## Example pattern

Default to source when you are editing a project. Use the tool call form when the available MCP surface owns skill creation.

<CodeGroup>
  ````md Framework source theme={null}
  ---
  name: Agent Design Review
  description: Review AI agent designs for goal fit, tool access, context, handoffs, and verification.
  allowed-tools:
    - list_files
    - get_file
    - search_files
  ---

  # Agent Design Review

  Use this skill when a user asks for a quick review of an AI agent, tool agent, or multi-agent design.

  ## Steps

  1. Read only the agent, skill, resource, or tool files needed for the review.
  2. Identify the agent's goal, required context, tools, handoffs, and verification path.
  3. Read `agent-design-guide://review` when it is available.
  4. Return the main risks, recommended edits, and a small Mermaid map only when the relationships are not obvious.

  ## Example

  ```mermaid
  flowchart LR
    User --> Orchestrator
    Orchestrator --> ToolAgent
    ToolAgent --> ExternalTool
    Orchestrator --> VerifiedAnswer
  ```
  ````

  ````js MCP tool call theme={null}
  create_skill({
    "project_reference": "<project>",
    "id": "agent-design-review",
    "name": "Agent Design Review",
    "description": "Review AI agent designs for goal fit, tool access, context, handoffs, and verification.",
    "allowed_tools": ["list_files", "get_file", "search_files"],
    "sections": {
      "Summary": "Review AI agent designs for goal fit, tool access, context, handoffs, and verification.",
      "Usage": "Use this skill when a user asks for a quick review of an AI agent, tool agent, or multi-agent design.",
      "Examples": "```mermaid\nflowchart LR\n  User --> Orchestrator\n  Orchestrator --> ToolAgent\n  ToolAgent --> ExternalTool\n  Orchestrator --> VerifiedAnswer\n```",
      "Notes": "Read agent-design-guide://review when it is available. Keep the review focused on agent behavior and evidence."
    }
  })
  ````
</CodeGroup>

In framework source, `allowed-tools` maps to the MCP `allowed_tools` array. The Markdown sections map to the MCP `sections` object.

## Resource example

Use a resource when the skill needs reusable context that should be read, not executed.

<CodeGroup>
  ```ts Resource source theme={null}
  import { resource } from "veryfront/resource";

  const agentDesignGuide = resource({
    pattern: "agent-design-guide://review",
    description: "Review checks for AI agent and tool-agent designs.",
    load: () => {
      return {
        content: [
          "# Agent design review guide",
          "",
          "- Start from the user outcome and the stop condition.",
          "- Keep one agent responsible for one clear job.",
          "- Name required tools, integrations, and resource inputs explicitly.",
          "- Define handoffs, approval points, and verification evidence.",
          "- Use Mermaid only when agent/tool relationships need a map.",
        ].join("\n"),
      };
    },
  });

  export default agentDesignGuide;
  ```

  ```js MCP tool call theme={null}
  create_resource({
    "project_reference": "<project>",
    "id": "agent-design-guide",
    "title": "Agent design review guide",
    "description": "Review checks for AI agent and tool-agent designs.",
    "pattern": "agent-design-guide://review"
  })
  ```
</CodeGroup>

## Output shape

Return the created or updated skill name, skill ID or source path, allowed tools, any backing resource ID or source path, and one short invocation example. Keep the final answer brief and do not claim a placeholder resource was created when the resource content is empty.

## Next

| Goal                           | Page                                                         |
| ------------------------------ | ------------------------------------------------------------ |
| Understand project skills      | [Skills](/agent/skills)                                      |
| Create a project agent         | [Create an agent](/agent/guides/create-agent)                |
| Understand resources           | [Resource](/code/concepts/resource)                          |
| Use the resource API           | [veryfront/resource](/code/api-reference/veryfront/resource) |
| Use the skill creation tool    | [create\_skill](/cloud/mcp/tools/create-skill)               |
| Use the resource creation tool | [create\_resource](/cloud/mcp/tools/create-resource)         |
