# Promote or claim a skill you have created

Have you authored a skill in GitHub and want to promote it using Tessl? Tessl allows you to take a skill from a local repository or GitHub repository, and generate the tile.json, which is essential for Tessl Tiles and Skills. Once imported, you will publish the tile to make it available, publicly or privately, to your teams. The following section discusses organization of your skills and how to publish them. Additionally if you have authored a Tile on GitHub that appears in Tessl, there is a section on [claiming that skill in Tessl](#claim-a-tessl-skill).

## Prerequisites

* Tessl [installed](/introduction-to-tessl/installation.md)
* Tessl logged in
* Skill code available locally
* Access to a [workspace](/reference/workspaces.md)

## Mapping and importing your skills into Tessl tiles

If you've authored a number of skills and documents to help your agents, you can logically group the related files together and create individual skill tiles in Tessl. For example:

* If you're developing a "data migration" skill, place all the files related to that skill and documentation in a single folder or repository. This would be a single tile.

<figure><img src="/files/UJb8ncBGSktk40nC9pRY" alt="" width="375"><figcaption></figcaption></figure>

* Similarly if you've built a skill for "building a front end", that might contain best practices and design skills you would group them together into its own tile, create the tile.json,by running the import command, then lint, review, eval and publish the skill to your workplace.

<div align="center"><img src="/files/cZSwQuHu4IMb9FTPJNsc" alt=""></div>

### Anti-patterns

To avoid performance issues and confusion of your agents, avoid throwing in the kitchen sink! Make your skill purpose built, providing the information for specific tasks.<br>

<figure><img src="/files/8WJH5Znn06WGMdQnCghv" alt="" width="375"><figcaption></figcaption></figure>

## Clone the Repository

Clone your repository locally.

## Create a tile.json

* Create a [tile.json](/reference/configuration.md#tile-configuration) (metadata describing it) by running the following command, with your workspace and folder location values:<br>

  ```
  tessl skill import ./<directory with SKILL.md> --workspace <myworkspace>
  ```

<figure><img src="/files/sTokSIYZW1x2E3G6jZss" alt=""><figcaption></figcaption></figure>

* You can create an eval file in `/eval` or request one through the web interface. More on this coming soon!

## Improve your skill with Lint, Review, and Evaluate your Skill

### Review your Skill against best practices

Before publishing, validate your skill structure and contents:

```sh
tessl skill lint ./my-skill
```

This command checks:

* `SKILL.md` format and structure
* Required frontmatter fields (name, description)
* Conformance to the Agent Skills specification
* Markdown validity

To optimize your skill, run the following:

```sh
tessl skill review --optimize ./my-skill
```

Fix any errors before proceeding.

### Evaluate quality using Scenarios

Once you've built your skill the final step before publishing is to create scenarios your skill can be evaluated against. The following document illustrates how you would accomplish this:

* [Evaluate skill quality using scenarios](/evaluate/evaluate-skill-quality-using-scenarios.md)

## Set up GitHub Action to publish to Tessl's Registry

The following steps introduce the [GitHub action](https://github.com/tesslio/setup-tessl) to your repository to publish your tile automatically.

Using the GitHub action will automatically link your tile to the repository, and all skills we previously indexed in the repository will be hidden and redirected to the tiles.\
\
See Tessl's [setup-tessl GitHub action](https://github.com/tesslio/setup-tessl) for additional options and information.

{% stepper %}
{% step %}

#### Create your workflow

Create your workflow file `.github/workflows/tessl-publish.yml`. [Here's an example action for auto-publishing](https://github.com/tesslio/setup-tessl?tab=readme-ov-file#publish-a-tile-on-push).
{% endstep %}

{% step %}

#### Create an API Key

Log into [Tessl](https://tessl.io/registry) on web UI, then navigate to [API keys](https://tessl.io/account/api-keys). Create a new API key. Copy the value as it will only be shown once.

![](/files/v4AWhByPOpN0RqduSHd2)
{% endstep %}

{% step %}

#### Add your API Key as a Repository Secret

In GitHub, navigate to your repo **Settings**, select **Secrets and variables**, under actions find **New Repository Secret**. Provide the name: `TESSL_TOKEN` and the value is the Tessl API key you procured in the earlier step.
{% endstep %}

{% step %}

#### Run your workflow

Kick off your workflow by running the relevant trigger, or manually triggering from the UI if you enabled that in your workflow definition.
{% endstep %}
{% endstepper %}

## Claim a Tessl Skill

Found a skill in Tessl that is created/indexed from your Skill/GitHub repository of skills? You'll want to claim ownership and disable indexing by Tessl. To do this, you will:

* Recreate the skill in your workspace by importing it locally, update the workspace in `tile.json`.
* Use the [GitHub action to publish](https://github.com/tesslio/setup-tessl?tab=readme-ov-file#publish-a-tile-on-push) , which will manage the Skill and ensure changes to the repo are reflected in your Tessl workspace and not reindexed by Tessl.

{% hint style="info" %}
If you accidentally use the CLI to publish a skill to your workspace, and the skill was already indexed by Tessl in the Tessl workspace, you would find two versions, in two different workspaces, when searching for that skill. You can [contact Tessl support](/support/giving-feedback.md) to claim your tile and address the duplicate. Be sure to set up the GitHub action as part of this.
{% endhint %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.tessl.io/distribute/promote-or-claim-a-skill-you-have-created.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
