agentsclimarketplace

Adaline evaluators

Skill adaline/skills/skills/adaline-evaluators

Create and manage evaluators in Adaline to score prompt outputs. Use when setting up LLM-as-a-judge, JavaScript, text-matcher, cost, latency, or response-length evaluators.From its SKILL.md

Install
npx -y skills add adaline/skills --skill adaline-evaluators

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 4 stars4 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

SKILL.md

4.1 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

Adaline Evaluators

Concepts

Evaluators define how Adaline scores prompt outputs. Each evaluator is attached to a prompt and dataset. Evaluation runs use an evaluator to produce per-row grades, scores, reasons, and aggregate metrics.

Key terms:

  • Evaluator — configured scoring rule attached to a prompt
  • Dataset — rows used by the evaluator when creating evaluation runs
  • Config — discriminated object by type
  • Statusactive or archived

Configuration

Set these environment variables when credentials are available:

  • ADALINE_API_KEY — workspace API key from Admin > API Keys
  • ADALINE_PROJECT_ID — project ID
  • ADALINE_PROMPT_ID — prompt to attach evaluators to
  • ADALINE_DATASET_ID — dataset for evaluator runs

Base URL: https://api.adaline.ai/v2

Evaluator Types

LLM-as-a-Judge

{
  "type": "llm-as-a-judge",
  "value": "Pass only if the response answers the question and all factual claims are grounded in the reference answer."
}

JavaScript

{
  "type": "javascript",
  "value": "const parsed = JSON.parse(output); return parsed.answer ? 'pass' : 'fail';"
}

Text Matcher

{
  "type": "text-matcher",
  "value": {
    "operator": "contains-all",
    "value": ["Summary", "Recommendation"]
  }
}

Operators: regex, equals, starts-with, ends-with, contains-all, contains-any, not-contains-any.

Cost, Latency, Response Length

These evaluator types use a comparison rule directly as value:

{
  "type": "latency",
  "value": {
    "value": 2000,
    "unit": "ms",
    "operator": "less"
  }
}

Operators: less, greater, equals.

Quick Triage

SymptomFix
API rejects groupRemove it; current config is discriminated by type only
Text matcher rejectedUse value.operator and value.value, not pattern / patterns
Cost/latency rejectedUse comparison rule directly as config.value, not nested under threshold
List response lacks configList returns lightweight summaries; call GET evaluator for full config
Evaluation needs multiple evaluatorsCreate one evaluation run per evaluatorId

Creating an Evaluator

curl -X POST "https://api.adaline.ai/v2/prompts/$ADALINE_PROMPT_ID/evaluators" \
  -H "Authorization: Bearer $ADALINE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "projectId": "project_abc123",
    "title": "Factual accuracy",
    "datasetId": "dataset_abc123",
    "config": {
      "type": "llm-as-a-judge",
      "value": "Pass only if the answer is accurate and cites the provided context."
    }
  }'

SDK Usage

await adaline.prompts.evaluators.list({ promptId, limit: 20 });
await adaline.prompts.evaluators.create({ promptId, evaluator });
await adaline.prompts.evaluators.get({ promptId, evaluatorId });
await adaline.prompts.evaluators.update({ promptId, evaluatorId, evaluator: { title: 'Updated' } });
await adaline.prompts.evaluators.delete({ promptId, evaluatorId });
await adaline.prompts.evaluators.list(prompt_id=prompt_id, limit=20)
await adaline.prompts.evaluators.create(prompt_id=prompt_id, evaluator=evaluator)
await adaline.prompts.evaluators.get(prompt_id=prompt_id, evaluator_id=evaluator_id)
await adaline.prompts.evaluators.update(prompt_id=prompt_id, evaluator_id=evaluator_id, evaluator=patch)
await adaline.prompts.evaluators.delete(prompt_id=prompt_id, evaluator_id=evaluator_id)

Best Practices

  1. Use LLM-as-a-judge for qualitative criteria and write explicit pass/fail rubrics.
  2. Use JavaScript/Text Matcher for deterministic structural checks.
  3. Use cost/latency/response-length evaluators for performance budgets.
  4. Keep evaluator titles descriptive because list responses are lightweight.
  5. Attach evaluators to stable datasets so runs are comparable over time.

References

See references/api.md for the full REST contract with all config shapes.

What ships with it: 1 file

3.8 KB alongside SKILL.md

references/

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.