ADR-001: Native Go eval runner for skill evaluation
Status: Proposed
Date: 2026-06-30
Context
The skill evaluation pipeline has a hard runtime dependency on the Tessl CLI and
TESSL_TOKEN secret. This creates CI friction, requires a third-party hosted
service, and prevents local contributors from running evals without a Tessl
account. The eval scenario format and the D9 structural scorer are both
self-owned and unaffected.
Decision
Replace the Tessl-based evaluation step with a native skill-auditor eval
command that:
- Loads scenarios from the existing
cmd/assets/evals/directory format - Runs each task prompt against a pinned Claude model with the skill in context
- Grades output against
criteria.jsonusing an LLM-as-judge call - Writes
summary.jsonin the existing schema for D9 consumption - Exits non-zero below a configurable
--fail-belowthreshold for CI
This is Option A from the evaluation plan. The Tessl CLI and TESSL_TOKEN
are removed from CI. Distribution and packaging (tile.json, tessl.json)
remain unchanged for this phase.
Consequences
- One fewer third-party runtime dependency in CI
- Local eval runs without a Tessl account (requires
ANTHROPIC_API_KEY) - CI swaps
TESSL_TOKENforANTHROPIC_API_KEY(one secret for another, but a standard one) - LLM judge calls introduce non-determinism — mitigation needed before CI gating
- Distribution side (tile.json, registry) remains on Tessl for now