executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
benchmark-evaluationRun a bounded ChestAgentBench or Eurorad multimodal evaluation through an OpenAI-compatible chat client, with local or URL-backed images, manifest checks, JSONL logging, interruption handling, and cautious result interpretation.
Independent GitHub snapshot · Automated classification · Original documentation governs
Use this skill to evaluate a vision-capable chat model on an already prepared, local ChestAgentBench-style manifest or Eurorad-derived case set. This is an evaluation runner, not a dataset builder and not a clinical decision tool. Route dataset scraping, question generation, and exploratory experiments to their sibling skills. Route MedRAX agent/tool initialization to the agent/tool runtime skill.
--max-cases value. Treat one case as the smoke run and
expand only after its log and image resolution are sound.python scripts/validate_case_manifest.py cases/metadata.jsonl --root cases
Nested image arrays are supported. Missing local images are errors; a case
with no image references is reported as a skip candidate. Use --help to
inspect all bounded-check options.python quickstart.py --model "$MODEL" --temperature 0.2 \
--log-prefix smoke-local --max-cases 1
The runner loads a JSONL benchmark split, creates an OpenAI-compatible
client, embeds local images as data URLs, and logs one JSON object per case.python quickstart.py --model "$MODEL" --temperature 0.2 \
--log-prefix smoke-url --max-cases 1 --use-urls
URL mode still fetches and base64-embeds the images before the API call; it
is therefore both network work and inference work. Stop if the URL fetch is
not explicitly authorized or cannot be bounded.question_id, status, answer,
duration, usage, and image-source counts before increasing the case limit.
Never infer benchmark quality from a single case.The multimodal request contains a medical-case preamble, the case's multiple
choice question, and an instruction to answer only from the supplied images
and case information. The system role asks for only one choice letter among
A/B/C/D/E/F. The expected answer is the manifest's answer field. Preserve
the model's raw answer for audit, but normalize only a separate analysis field;
do not rewrite the source answer or silently score prose as a letter.
A valid case should have a stable question_id, non-empty question, an
expected answer, and images for local mode or image_source_urls for URL
mode. Image fields may be a string, a list, or nested lists. Flatten them in
order and preserve that order in the log. Empty or missing images do not call
the model: record status: "skipped" and reason: "no_images".
--model is the effective request model and takes precedence over the
runner's default. OPENAI_MODEL is a useful provider/configuration
convention, but do not assume the runner reads it automatically; pass its
value explicitly when needed.OPENAI_API_KEY is required by the reference quickstart. OPENAI_BASE_URL,
when set, is passed to the OpenAI-compatible client. Use a provider's exact
compatible endpoint and model name; a custom base URL does not make an
incompatible model multimodal.--max-cases limits the selected prefix
of the dataset; it is not a random sample and is not a confidence interval.Separate these quantities: attempted cases, successful model responses, no-image skips, request errors, valid-choice answers, and exact answer matches. Report the manifest version/source description, image mode, model/base-url class (not secrets), temperature, case limit, interruption state, and log completeness. Do not call skipped cases incorrect unless the evaluation plan explicitly defines that policy. A benchmark score is sensitive to image availability, prompt wording, model/version, provider behavior, and case ordering; compare runs only when those controls are held constant.
For detailed schemas, workflows, flags, and predictable failures, read: