CtrlK
BlogDocsLog inGet started
Tessl Logo

jbaruch/koog

Koog 1.0 idioms, gotchas, and scaffolding skills for Kotlin agents on the JVM

86

1.86x
Quality

88%

Does it follow best practices?

Impact

86%

1.86x

Average score across 45 eval scenarios

SecuritybySnyk

Advisory

Suggest reviewing before use

Overview
Quality
Evals
Security
Files

criteria.jsonevals/scenario-33/

{
  "context": "Tests whether the skill correctly swaps provider-specific surfaces when the user picks Anthropic instead of the more common OpenAI default — executor factory, model selector, and environment variable name all change in lockstep.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Uses simpleAnthropicExecutor",
      "description": "Main.kt's promptExecutor is built with simpleAnthropicExecutor (not simpleOpenAIExecutor or any other provider factory)",
      "max_score": 25
    },
    {
      "name": "Selects a current Anthropic model",
      "description": "llmModel is an AnthropicModels.* entry that exists in 1.0 (e.g., Opus_4_7 or Opus_4_6, NOT the removed Haiku_3 or any other retired Anthropic model entry)",
      "max_score": 20
    },
    {
      "name": "Reads ANTHROPIC_API_KEY from the environment",
      "description": "Reads the Anthropic-specific environment variable (ANTHROPIC_API_KEY) from System.getenv, not OPENAI_API_KEY copy-pasted from a template, not a hardcoded literal",
      "max_score": 20
    },
    {
      "name": "Accepts the existing-empty-directory state without overwrite",
      "description": "Treats the existing empty directory as a valid scaffold target — does not refuse, does not delete, does not ask the user to recreate it",
      "max_score": 15
    },
    {
      "name": "Uses 1.0+ umbrella coordinate",
      "description": "build.gradle.kts uses ai.koog:koog-agents at 1.0.0 or later",
      "max_score": 10
    },
    {
      "name": "Top-level AIAgent factory call",
      "description": "Main.kt calls AIAgent(...) as a top-level factory function, not a companion-invoke or concrete subtype constructor",
      "max_score": 10
    }
  ]
}

evals

README.md

tile.json