AGENTS.md@evals · git:20261002.95427f9 · 2026-10-02 · sha256 178dc4b72eb5087a
AGENTS.md@evals git:20261002.95427f9A
Immutable. This exact content never changes and is served at /api/v1/blob/178dc4b72eb5087a.
# Native Claude evals Run from the repo root with authenticated `claude` and `gh`: ```bash uv run python evals/prepare.py claude plugin eval .tmp/evals/prepared/current/tend-ci-runner \ --ablation none --runs 3 --allow-tools Write --judge-model sonnet \ --keep-temp --no-publish --trust-plugin --output-dir .tmp/evals/native/current ``` For the historical control, replace `current` with `historical` in both paths. Compare those arms: a no-plugin ablation still contains previously loaded skills in the retained history. Use `--case wrapping` to narrow a run; `--model haiku` changes the executor, independently of `--judge-model`. Inspect failures in `aggregate-result.json` and the HTML report: execution errors are not behavioral failures. Wrapping uses a model judge; calibrate changed graders against known good and bad artifacts. Preparation replaces staged plugins; never run it during an eval. These cases resume the drafting decision, not repository edits or live GitHub actions. ## Add a case from history Start with an issue/PR URL, a time with its time zone, and the behavior to check. Use `/install-tend:debug-tend-run` to locate and inspect the original Claude session. Thread-triggered artifacts are named `claude-session-logs-n<NUMBER>`; scheduled runs use invocation IDs, so also inspect runs around the supplied time. Keep only `cases/<name>/source.json` and `case.yaml` in Git: - `source.json` pins the repository, run, artifact, transcript path and SHA-256, historical Tend ref, bot, injected skill names, and an exclusive `before` timestamp. Inspect the session to choose a cutoff immediately before the decision being tested, with completed tool calls and no original bad answer. Recover the actual append-system prompt; pin its hash if it differs from the historical shared prompt. See the existing manifests for the format. - `case.yaml` names `context.history_file: history.jsonl`, the original model, continuation prompt and graders. Ask for the next artifact using retained evidence; keep the expected behavior in the grader, out of the prompt. Preparation downloads and verifies the source, cuts the history at `before`, and stages historical/current plugins. It replaces injected Tend skill bodies in the current arm while retaining the investigation and consumer guidance. Check both arms: historical runs should reproduce the failure before using the case to claim an improvement. Small samples establish reproduction, not rates. Raw histories and recovered prompts are cached by transcript hash under `~/.local/share/tend/evals/sources/`, outside the repo and across worktrees. GitHub artifacts expire: a fresh machine needs a surviving artifact or a copy of that cache. A URL and time cannot recover expired logs or reconstruct edited GitHub state. This is an agent authoring recipe, not an automatic importer. ## Prototype status Preparation was exercised on three production histories: the two regression cases and a Tend PR-description capture probe. Future sessions may need to refine cutoff selection, prompt recovery and skill replacement for new session formats. Only injected execution guidance is replaced; instruction source and diffs read through tools remain evidence. Inspect those for answer leakage or conflicting historical guidance before trusting a new comparison.