ITS-90 thermocouple conversions (NIST Monograph 175), types B, E, J, K, N, R, S, T. Temperatures in Celsius, EMF in mV. All conversions include explicit cold-junction handling.
Three well-defined tools with complete JSON schemas, clear descriptions, and proper type annotations. All tools are read-only pure functions with ToolAnnotations correctly applied. Naming follows verb_noun convention (thermocouple_to_temperature, thermocouple_to_emf, thermocouple_types). Descriptions are concise (34 - 72 chars) and explain the conversion direction and cold-junction handling. Parameters have types and descriptions. Output schemas are documented in code (return dicts with typed fields). Main gaps: descriptions are at the lower end of the 10 - 1024 char baseline (194 avg for A+ tools); no explicit error handling guidance for invalid thermocouple types or out-of-range EMF values; parameter descriptions could be more prescriptive about valid type_letter values (B, E, J, K, N, R, S, T).
Expected meter reading (mV) for a hot-junction temperature (C).
Convert a measured thermocouple EMF (mV) to hot-junction temperature (C). reference_c is the cold-junction temperature; 0.0 means an ice bath or an instrument that already compensates.
The eight letter-designated types with ranges and EMF spans.
Parameter descriptions lack explicit enum constraint for type_letter. Description says 'Thermocouple type letter (B, E, J, K, N, R, S, or T)' but this is informal; should be a formal enum in the schema or a strict pattern constraint to prevent LLM hallucination of invalid types like 'X' or 'Type-K'.
No error handling guidance. If an LLM passes an invalid type_letter or out-of-range EMF, the tool will raise an exception. The description should hint at recovery: 'If type_letter is invalid, call thermocouple_types() to see valid options.'
thermocouple_types() description is vague ('The eight letter-designated types with ranges and EMF spans'). Does not explain when to call it or what structure it reveals. Should say: 'Call this first to discover valid thermocouple types and their temperature/EMF ranges before calling conversion tools.'
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 61 | 2025-06-18+ | v2 |
Output field naming inconsistency: thermocouple_to_temperature returns 'seebeck_uv_per_c' (derived field) alongside temperature conversions. This is domain-specific and may confuse LLMs unfamiliar with Seebeck coefficient. Consider moving to a separate tool or documenting why it's included.