| name | eval-engineer |
| description | Use when a user is unsure which Eval Engineer command to run for AI agents/RAG apps, needs onboarding/status for a .galileo workspace, or asks where to start. |
Eval Engineer
Use this skill as the front door for Galileo-backed eval engineering. Keep it
as a router: inspect current project readiness, educate the user only enough to
choose the workflow, and route to the focused command skill that matches the
job.
If a focused skill clearly applies, use that focused skill directly instead of
running the full core loop here.
Current Project State
Start by checking what the user gave you and what the project already has:
- Galileo URL, project/log-stream/experiment/session/trace ID, or symptom
.galileo/config.yml
.galileo/current/debug-packet.json
.galileo/current/verification-debug-packet.json
- configured verification commands
- metric profile or expected-output contract
Then report one compact status block:
Eval Engineer works by closing the loop:
evidence -> diagnosis -> bounded change -> verification.
Current project state:
- workspace: ready/missing
- evidence: ready/missing/ambiguous
- measurement: ready/missing
- best next command: /eval-...
Do not dump general docs. Name the smallest useful next step.
Route
- Use
/eval-setup when .galileo/ or verification config is missing.
- Use
/eval-fetch when the user provides a Galileo URL/ID or needs evidence
pulled into .galileo/current/debug-packet.json.
- Use
/eval-dataset when the user wants to create, review, accept, reject,
or improve eval cases under .galileo/eval-dataset/.
- Use
/eval-measure when the question is whether metrics, rubrics, or
expected-output contracts are correct.
- Use
/eval-diagnose when a debug packet or fetched evidence is ready and the
user wants root cause.
- Use
/eval-cost when the goal is token, latency, model-routing, tool-loop, or
evaluator-cost reduction.
- Use
/eval-audit when the user wants a launch, safety, OWASP, security,
coverage, or production-readiness review.
If the right route is uncertain, ask one clarifying question. If evidence is
missing, explain exactly what is missing and how /eval-fetch or /eval-setup
will get it.
Core Loop
-
Find the working set.
- Prefer
.galileo/current/debug-packet.json.
- Treat
.galileo/current/debug-packet.json as the baseline or active
packet being diagnosed.
- Treat
.galileo/current/verification-debug-packet.json as the optional
after-change packet used for comparison.
- Read
.galileo/config.yml for agent type, editable files, blocked files,
metrics, and verification commands.
- Read
.galileo/learnings.md if it exists.
- If no current packet exists, use a user-provided packet path or help import
Galileo evidence before diagnosing.
-
Summarize evidence before reasoning.
- Run:
python3 skills/eval-engineer/scripts/summarize_debug_packet.py <packet>
- Use raw traces only when the compact packet is missing required evidence.
- Classify score provenance using
references/evidence-provenance.md before treating metrics as Galileo
evidence. A packet under .galileo/ is not automatically hosted Galileo evidence.
-
Diagnose from Galileo concepts.
- Use metrics to identify what degraded.
- Use traces/spans to identify where behavior diverged.
- For new eval cases, fixture expansion, or tokenomics work, use
references/metric-profile-checklist.md before changing behavior.
- For cost, latency, or token-efficiency work, use
references/tokenomics-rca.md and compare cost evidence against quality
metrics before proposing optimization.
- Check whether the issue is in the app, the test case, the metric, or the
Galileo integration before proposing code changes.
- Use the RCA recipe in
references/rca-recipe.md to select the smallest
evidence-backed fix surface.
- Prefer Galileo-specific reasoning: datasets, metrics, experiments, log
streams, traces, spans, sessions, custom metrics, and run comparison.
- Treat experiments as controlled sample evals and log streams as production
or live-traffic RCA sources.
-
Write bounded artifacts.
-
Write or update .galileo/current/diagnosis.md.
-
Write or update .galileo/current/fix-plan.md.
-
Write or update .galileo/current/verification-plan.md.
-
Use the templates in assets/ for expected artifact shape.
-
Preserve Galileo evidence links or stable IDs in every RCA artifact.
-
Include this compact block in RCA artifacts that mention metrics:
Evidence provenance:
- hosted Galileo evidence used: yes/no
- score source: galileo_fetched/local_existing/local_generated/mixed/unknown
- missing before Galileo-backed claim: none/<specific IDs or metrics>
-
Keep edits inside allowed paths from .galileo/config.yml.
-
If useful, append a concise general pattern to .galileo/learnings.md.
-
Create candidate eval cases carefully.
- Use
/eval-dataset for candidate, accepted, and rejected case workflows.
- Propose candidates only for clear, reusable failures.
- Avoid duplicates, ambiguous cases, and sensitive data.
- Write candidates to
.galileo/eval-dataset/candidates.jsonl only when the
failure is suitable for human review.
-
Verify before claiming improvement.
- Use exact local and Galileo commands from
.galileo/config.yml when
available.
- Save or reference the after-change packet as
.galileo/current/verification-debug-packet.json when working in the
current set.
- Compare the new run against
.galileo/current/debug-packet.json, the
verification packet, or a session manifest.
- Report improved, regressed, and unchanged metrics.
- Label local verification scores as local. Do not present local generated
packets as server-side Galileo metric results.
- A prompt or code diff alone is never proof of improvement.
Guardrails
- Do not hardcode one reference agent, one dataset, one metric, or one provider.
- Do not scan historical raw sessions unless asked or needed for comparison.
- Do not silently overwrite session evidence.
- Do not use ambiguous packet names such as
debug-packet-after.json; use
verification-debug-packet.json for after-change evidence in .galileo/current/.
- Do not promote eval candidates without human review.
- Do not create or rely on a new local eval harness as a substitute for Galileo
evidence unless the user explicitly asks for fixture generation or confirms
local-only evaluation.
- Do not make broad rewrites when a bounded prompt, tool, retriever, guardrail,
metric, or dataset fix is enough.
- Do not provide RCA claims without trace, span, session, metric, dataset,
experiment, or log-stream evidence.
References
- Working-set structure:
references/working-set.md
- Debug packet schema and usage:
references/debug-packets.md
- Evidence provenance:
references/evidence-provenance.md
- Eval dataset case design:
references/eval-datasets.md
- Galileo evidence sources:
references/galileo-sources.md
- Galileo live readiness:
references/galileo-live-readiness.md
- Galileo metric selection:
references/metrics.md
- Metric-profile checklist for cases and segments:
references/metric-profile-checklist.md
- Galileo experiment wiring:
references/galileo-experiments.md
- General RCA recipe:
references/rca-recipe.md
- Tokenomics RCA for cost, latency, and token reduction:
references/tokenomics-rca.md
- Output artifact templates:
assets/diagnosis-template.md,
assets/fix-plan-template.md, assets/verification-plan-template.md,
assets/cost-diagnosis-template.md,
assets/tokenomics-fix-plan-template.md,
assets/quality-preserving-verification-template.md,
assets/metric-profile-template.md
- Repo plan/status context:
docs/plan.md, docs/tasks.md, docs/progress.md