CtrlK
BlogDocsLog inGet started
Tessl Logo

sporkwace/monkey-thought-translator

translate claude skills into chatgpt or codex skills only after auditing purpose, target host, capability parity, resource portability, tool assumptions, and unrealizable behavior. use when the user uploads or points to a claude skill, asks to port a claude skill to chatgpt, codex, or openai skills, or wants a compatibility review before translation. requires a compatibility report, risk score, capability matrix, and user approval before packaging when behavior cannot be preserved faithfully.

83

2.34x
Quality

90%

Does it follow best practices?

Impact

89%

2.34x

Average score across 2 eval scenarios

SecuritybySnyk

Passed

No known issues

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-2/

{
  "context": "Tests whether the agent correctly handles a clean-port translation: normalizing the skill name to kebab-case, creating agents/openai.yaml with required OpenAI metadata fields, writing a frontmatter description that includes trigger conditions and is entirely lower-case, replacing Claude-as-runtime references with neutral language, keeping SKILL.md compact by offloading detail to references/, and packaging as skill.zip.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Name normalized to kebab-case",
      "description": "The translated skill name used in directory names, SKILL.md frontmatter, and/or skill.zip is in lowercase kebab-case (e.g. 'meeting-notes-summarizer-pro' or similar), not the original mixed-case 'Meeting Notes Summarizer Pro'",
      "max_score": 12
    },
    {
      "name": "agents/openai.yaml created",
      "description": "The translated skill package contains a file at agents/openai.yaml (or agents/openai.yml)",
      "max_score": 10
    },
    {
      "name": "openai.yaml has display name",
      "description": "agents/openai.yaml contains a human-readable display name field (not the kebab-case package name)",
      "max_score": 8
    },
    {
      "name": "openai.yaml has icon field",
      "description": "agents/openai.yaml contains an icon field (any value is acceptable)",
      "max_score": 8
    },
    {
      "name": "openai.yaml has accent color",
      "description": "agents/openai.yaml contains an accent color or color field (any value is acceptable)",
      "max_score": 8
    },
    {
      "name": "Frontmatter description is lower-case",
      "description": "The translated SKILL.md frontmatter description field is entirely in lower-case (no sentence-case or title-case)",
      "max_score": 8
    },
    {
      "name": "Frontmatter includes trigger conditions",
      "description": "The translated SKILL.md frontmatter description includes both what the skill does AND when to use it (trigger conditions), not just a general capability description",
      "max_score": 10
    },
    {
      "name": "Claude runtime references replaced",
      "description": "The translated SKILL.md body does NOT contain 'Claude', 'Claude Code', 'Claude Desktop', or 'Anthropic' in contexts where they describe the runtime assistant (neutral terms like 'assistant' or 'agent' used instead)",
      "max_score": 10
    },
    {
      "name": "skill.zip produced",
      "description": "A file named skill.zip is present in the working directory as the packaged translated skill",
      "max_score": 14
    },
    {
      "name": "Round-trip review present",
      "description": "output_contract.md or equivalent document includes a round-trip review section addressing what the original skill did better, what became weaker, and/or what assumptions remain",
      "max_score": 12
    }
  ]
}

evals

SKILL.md

tessl.json

tile.json