converting-skill-to-tessl-tile
Scannednpx machina-cli add skill pantheon-org/tekhne/converting-skill-to-tessl-tile --openclawConverting Skills to Tessl Tiles
Wrap standalone skills into Tessl tiles to enable versioning, publishing, and evaluation.
Prerequisites
Tessl CLI must be installed. Verify with:
tessl --version
If not installed, visit https://docs.tessl.io/
Quick Start
# 1. Create new tile
tessl tile new <tile-name>
# 2. Copy skill into tile directory
cp -r <skill-folder> <tile-name>/
# 3. Update tile.json to reference the skill (see schema below)
# 4. Validate
tessl tile lint <tile-name>
If lint fails, see Common Lint Errors below, fix issues, then re-run lint.
Tile Structure
<tile-name>/
├── tile.json
└── <skill-name>/
├── SKILL.md
├── references/ (optional)
└── scripts/ (optional)
tile.json Schema
{
"name": "<workspace>/<tile-name>",
"version": "0.0.1",
"summary": "Brief description of what this tile provides.",
"private": true,
"skills": {
"<skill-name>": {
"path": "<skill-name>/SKILL.md"
}
}
}
Fields:
name: Formatworkspace/tile-name(workspace is your tessl username or org)version: Semantic versionsummary: One-line descriptionprivate: Setfalseto make publicly discoverable. Tiles cannot be made private after they are published, so this should be set tofalseuntil the user is ready to publish.skills: Map of skill names to their SKILL.md paths
Multiple Skills
A tile can contain multiple skills:
{
"name": "myorg/data-tools",
"version": "1.0.0",
"summary": "Data processing and visualization skills.",
"private": false,
"skills": {
"csv-processor": {
"path": "csv-processor/SKILL.md"
},
"chart-builder": {
"path": "chart-builder/SKILL.md"
}
}
}
Common Lint Errors
| Error | Cause | Fix |
|---|---|---|
missing SKILL.md | Path in tile.json doesn't match actual file location | Update path to match actual SKILL.md location |
invalid name format | Name missing workspace prefix | Use format workspace/tile-name |
missing frontmatter | SKILL.md lacks YAML frontmatter | Add --- delimited frontmatter with name and description |
missing description | SKILL.md frontmatter missing description field | Add description: to SKILL.md frontmatter |
invalid version | Version not semver format | Use format like 1.0.0 or 0.0.1 |
After fixing errors, re-run: tessl tile lint <tile-name>
Using Tiles
# Install locally for testing
tessl tile install <tile-name>
# Optionally publish to registry
tessl tile publish <tile-name>
Next Steps
After creating a tile, use the creating-eval-scenarios skill to generate evaluation scenarios.
Source
git clone https://github.com/pantheon-org/tekhne/blob/main/.tessl/tiles/tessl-labs/tessl-skill-eval-scenarios/converting-skill-to-tessl-tile/SKILL.mdView on GitHub Overview
Converting Skills to Tessl Tiles guides wrapping a standalone skill into a Tessl tile to enable versioning, publishing, and evaluation. It covers creating a tile manifest, validating the directory structure, and ensuring the skill's SKILL.md conforms to the required format.
How This Skill Works
Typically you create a new tile with tessl tile new, copy the skill into the tile directory, update tile.json to reference the skill's SKILL.md, and then run tessl tile lint to validate against the schema. The lint checks catch common issues like missing SKILL.md, invalid name format, missing frontmatter, and invalid versions.
When to Use It
- convert to tile
- package this skill
- create a tessl tile
- wrap skill in tile
- before running evals on a skill not yet in a tile
Quick Start
- Step 1: tessl tile new <tile-name>
- Step 2: Copy skill into tile directory and update tile.json to reference <skill-name>/SKILL.md
- Step 3: tessl tile lint <tile-name> to validate and fix issues
Best Practices
- Ensure Tessl CLI is installed (tessl --version) before starting.
- Initialize a new tile with tessl tile new <tile-name>.
- Copy your skill into the tile directory and reference it in tile.json.
- Follow the tile.json schema: workspace/tile-name, semantic version, public/private, and skill paths.
- Run tessl tile lint <tile-name> and fix the common lint errors (missing SKILL.md, invalid name, missing frontmatter, missing description, invalid version) before publishing.
Example Use Cases
- Wrap a standalone skill into a tile named myorg/data-tools with a single skill csv-processor referenced as csv-processor/SKILL.md.
- Add a second skill chart-builder to the same tile (myorg/data-tools) by updating tile.json to include both SKILL.md paths.
- Lint a newly created tile after moving SKILL.md or renaming files to catch missing frontmatter or description issues.
- Publish a tile to the registry only after lint passes and the tile's privacy is set appropriately.
- After creating a tile, use the creating-eval-scenarios workflow to generate evaluation scenarios for the included skills.