> For the complete documentation index, see [llms.txt](https://notara-1.gitbook.io/notara-docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://notara-1.gitbook.io/notara-docs/skills/creating-skills.md).

# Creating & Forking Skills

You can create skills from scratch or fork an existing platform skill and customize it for your team's needs.

## Required Role

| Action                                  | Minimum Role |
| --------------------------------------- | ------------ |
| Create or edit a skill prompt           | `editor`     |
| Fork a platform skill                   | `editor`     |
| Bind tools to a skill                   | `editor`     |
| Grant a skill elevated tool permissions | `admin`      |

The editor role is deliberately positioned as the empowerment threshold — team members can maintain their own skills and context without needing full admin access to credentials or billing.

## Creating a Skill from Scratch

1. In the dashboard, go to **Skills** and click **+ New Skill**.
2. Fill in the skill fields:

| Field           | Tips                                                                                                                   |
| --------------- | ---------------------------------------------------------------------------------------------------------------------- |
| **Name**        | Clear, action-oriented (e.g., "Weekly Engineering Digest")                                                             |
| **Slug**        | Auto-generated from name; can be customized. Users invoke it as `use the [slug] skill`.                                |
| **Description** | One or two sentences describing what this skill does and when to use it. This is used for intent matching.             |
| **Prompt**      | The instruction fragment. Write in second person ("You are reviewing..."). Focus on the output format and constraints. |

3. Under **Bound Tools**, select the connectors this skill can use. Only connectors already active in your workspace appear here.
4. Under **Bound Context**, optionally pin specific library documents that should always be available when this skill is active.
5. Click **Save**.

### Writing a Good Prompt

The skill prompt is injected into the agent's system context when the skill is active. It should:

* State the skill's purpose clearly
* Define the expected output format (bullet list, prose, table, etc.)
* Specify any constraints ("always include a severity level", "keep the summary under 200 words")
* Reference bound tools by name if relevant ("Use `linear_search_issues` to find tickets")

Example prompt for a sprint review skill:

```markdown
You are conducting a sprint review summary for the engineering team.

For each Linear project in the current sprint:
1. List issues closed this week (status: Done)
2. List issues still in progress (status: In Progress)  
3. Flag any issues that have been in progress for more than 5 days
4. Note any blockers mentioned in issue comments

Format the output as a Slack-ready message with sections per project. Keep the 
total length under 600 words. Use bullet points, not prose.
```

## Forking a Platform Skill

Platform skills are a great starting point. Fork one to customize it for your team without starting from scratch.

1. On the skill shelf, find the platform skill you want to fork (e.g., `mkt-competitor-teardown`).
2. Click the skill tile to open it.
3. Click **Fork**.
4. Select the group this fork belongs to.
5. The forked skill opens in the editor with the platform skill's prompt pre-filled.
6. Customize the name, slug, prompt, bound tools, and context.
7. Click **Save**.

The fork is independent — changes to the platform skill don't propagate to your fork.

## Uploading a Skill File

Skills can be written as markdown files with YAML frontmatter and uploaded directly. This is useful for:

* Version-controlling your skills in git
* Sharing skills between workspaces
* Migrating skills from another system

### File Format

```markdown
---
name: Weekly Engineering Digest
slug: eng-weekly-digest
description: Summarizes the week's Linear issues, PRs, and incidents for the engineering team.
tools:
  - linear_search_issues
  - github_list_prs
  - slack_get_channel_history
---

You are conducting a weekly engineering digest for the team.

Pull the last 7 days of activity from:
- Linear: closed issues, new issues, issues moved to blocked
- GitHub: merged PRs, open PRs older than 3 days
- Slack: notable discussions in #engineering

Format as a structured weekly digest...
```

To upload:

1. Go to **Skills** and click **Upload Skill**.
2. Select your `.md` file.
3. Review the parsed preview.
4. Click **Import**.

If a skill with the same slug already exists, you'll be prompted to overwrite or create a new version.

## Version History

Every save creates a new version. To see the history:

1. Open a skill.
2. Click **Version History** in the top-right.
3. Select any previous version to view its prompt.
4. Click **Restore** to roll back to that version.

Versions are retained indefinitely. They're stored efficiently — only the diff is saved, not a full copy of the prompt each time.

## Skill Packages

For skills with supporting files (reference documents, example outputs, scripts), you can create a **skill package** — a `.zip` file containing the skill's `.md` file plus an `assets/` folder.

Packages are useful for distributing polished skills. Assets are accessible to the agent via MCP resources and a `read_skill_asset` tool, and are bundled into the skill's `prompts/get` response for external callers.
