CtrlK
BlogDocsLog inGet started
Tessl Logo

sharaf/migrate-to-tessl

Use when migrating, restructuring, publishing, or auditing an existing Claude skill into a Tessl tile; converting flat .md files or SKILL.md bundles; fixing Tessl Quality, Impact, Uplift, frontmatter, metadata, tile.json summary, README, markdown reference links, registry-vs-local Quality gaps, artifact anchors, auto-eval wait discipline, or pushing tile scores from 88-99% to 100%.

100

1.17x
Quality

100%

Does it follow best practices?

Impact

100%

1.17x

Average score across 3 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent correctly identifies and fixes the specific structural issues that cap Tessl tile Quality at ~88%. The fixture tile has multiple violations: non-standard top-level frontmatter keys, a nested YAML structure inside metadata, a missing metadata.version, no 'Use when...' clause, a placeholder tile.json summary, and no README.md. Fixing all of these is required to reach ~97% Quality.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Non-standard keys removed",
      "description": "Fixed SKILL.md frontmatter does NOT contain non-standard top-level keys (domain, sub_domains, research_date, maintainer, tags) at the top level — they are either removed or moved under metadata",
      "max_score": 10
    },
    {
      "name": "Metadata block added",
      "description": "Fixed SKILL.md frontmatter contains a `metadata:` block that captures the project-specific fields (domain, research_date, maintainer, etc.) that were previously at the top level",
      "max_score": 8
    },
    {
      "name": "String-only metadata values",
      "description": "Every value inside the `metadata:` block in the fixed SKILL.md is a plain string — no nested YAML objects and no YAML arrays (lists like sub_domains and tags must be flattened to comma-separated strings if retained)",
      "max_score": 10
    },
    {
      "name": "metadata.version key",
      "description": "The `metadata:` block in the fixed SKILL.md includes `version: \"0.1.0\"` (or another string version matching tile.json)",
      "max_score": 8
    },
    {
      "name": "Top-level version removed",
      "description": "The fixed SKILL.md does NOT have a standalone `version:` key at the top level of the frontmatter (outside of metadata)",
      "max_score": 7
    },
    {
      "name": "Use when clause",
      "description": "The `description` field in the fixed SKILL.md contains an explicit 'Use when...' phrase or equivalent trigger clause (e.g. 'Use when the user wants to build a Kafka consumer', 'set up ksqlDB', 'debug consumer lag', 'design a dead-letter queue')",
      "max_score": 15
    },
    {
      "name": "tile.json summary updated",
      "description": "The fixed tile.json has a `summary` field that is NOT the generic placeholder ('A tile for stream processing tasks.' or similar) — it mirrors the optimized SKILL.md description or contains equivalent trigger-rich text",
      "max_score": 15
    },
    {
      "name": "README.md created",
      "description": "A README.md file exists at the tile root (not under skills/) with at minimum: a title heading, a description paragraph, and a `tessl install` command",
      "max_score": 12
    },
    {
      "name": "README includes when-to-use",
      "description": "The README.md contains a 'When to use' section (or equivalent) listing trigger phrases or use cases for the skill",
      "max_score": 8
    },
    {
      "name": "Audit report created",
      "description": "audit-report.md exists and mentions at least two distinct issues that were found (e.g. non-standard frontmatter keys, placeholder summary, missing README, nested metadata values)",
      "max_score": 7
    }
  ]
}

evals

README.md

tile.json